Browse Source

refactor(chat): 重构聊天界面为列表布局

- 将基础活动类从 BaseListActivity 更改为 BaseListFormLayoutNormalActivity
- 添加 ActivityChatBinding 视图绑定支持
- 移除 WebView 和任务标题 TextView 组件
- 使用 RecyclerView 替代 WebView 显示聊天内容
- 调整 RecyclerView 的布局配置和滚动模式
- 修改聊天项底部间距从 20dp 增加到 30dp
- 配置全屏显示模式和布局 ID 方法实现
徐勤民 1 day ago
parent
commit
13e3afa8cb

+ 5 - 1
app/src/main/java/com/nova/brain/glass/ui/ChatActivity.kt

@@ -2,6 +2,7 @@ package com.nova.brain.glass.ui
 
 import android.widget.TextView
 import com.nova.brain.glass.R
+import com.nova.brain.glass.databinding.ActivityChatBinding
 import com.nova.brain.glass.helper.OfflineCmdListener
 import com.nova.brain.glass.helper.OfflineCmdServiceHelper
 import com.nova.brain.glass.model.ChatItem
@@ -10,9 +11,12 @@ import com.xuqm.base.adapter.BasePagedAdapter
 import com.xuqm.base.adapter.CommonPagedAdapter
 import com.xuqm.base.adapter.ViewHolder
 import com.xuqm.base.ui.BaseListActivity
+import com.xuqm.base.ui.BaseListFormLayoutNormalActivity
 import io.noties.markwon.Markwon
 
-class ChatActivity : BaseListActivity<ChatItem, ChatVM>() {
+class ChatActivity : BaseListFormLayoutNormalActivity<ChatItem, ChatVM, ActivityChatBinding>() {
+    override fun getLayoutId(): Int = R.layout.activity_chat
+    override fun fullscreen(): Boolean = true
     private val listener = object : OfflineCmdListener {
         override fun onOfflineCmd(cmd: String) {
             runOnUiThread {

+ 8 - 22
app/src/main/res/layout/activity_chat.xml

@@ -1,32 +1,18 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout>
+
     <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        xmlns:tools="http://schemas.android.com/tools"
         android:id="@+id/main"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="@color/app_color_black">
 
-        <TextView
-            android:id="@+id/tvTaskHeader"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:text="130工序要求如下:"
-            android:textColor="#ff40FF5E"
-            android:textSize="20sp"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-        <WebView
-            android:id="@+id/content"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginTop="10dp"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/tvTaskHeader" />
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/baseRecyclerView"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:overScrollMode="never" />
+
 
     </androidx.constraintlayout.widget.ConstraintLayout>
-</layout>
+</layout>

+ 1 - 1
app/src/main/res/layout/item_chat.xml

@@ -2,7 +2,7 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginBottom="20dp"
+    android:layout_marginBottom="30dp"
     android:paddingHorizontal="29dp"
     android:paddingVertical="10dp"
     android:orientation="vertical">