From b7f2405b7b41dda4baff6519b3a9d2499219207b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Thu, 16 Apr 2026 22:47:57 +0800 Subject: [PATCH] =?UTF-8?q?refactor(chat):=20=E4=BC=98=E5=8C=96=E8=81=8A?= =?UTF-8?q?=E5=A4=A9=E7=95=8C=E9=9D=A2=E6=BB=9A=E5=8A=A8=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=B9=B6=E6=B8=85=E7=90=86=E6=AC=A2=E8=BF=8E=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?VM=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用 scrollToPositionWithOffset 替代复杂的两帧滚动实现 - 移除不必要的 post 延迟操作和手动位置调整 - 删除 WelcomeVM 中未使用的网络请求相关代码 - 移除过时的 MutableLiveData 和 HTTP 相关导入 - 简化 ViewModel 结构,提升代码可维护性 --- .../com/nova/brain/glass/ui/ChatActivity.kt | 10 ++---- .../nova/brain/glass/viewmodel/WelcomeVM.kt | 32 ------------------- 2 files changed, 2 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/com/nova/brain/glass/ui/ChatActivity.kt b/app/src/main/java/com/nova/brain/glass/ui/ChatActivity.kt index e12ad52..c1a8e2e 100644 --- a/app/src/main/java/com/nova/brain/glass/ui/ChatActivity.kt +++ b/app/src/main/java/com/nova/brain/glass/ui/ChatActivity.kt @@ -62,14 +62,8 @@ class ChatActivity : BaseListFormLayoutNormalActivity 0) recyclerView.scrollBy(0, gap) - } + // 将最新 item 顶部对齐到 RecyclerView 顶部 + lm.scrollToPositionWithOffset(lastIndex, 0) } override fun adapter() = object : CommonPagedAdapter(R.layout.item_chat) { diff --git a/app/src/main/java/com/nova/brain/glass/viewmodel/WelcomeVM.kt b/app/src/main/java/com/nova/brain/glass/viewmodel/WelcomeVM.kt index 37e392c..68c4951 100644 --- a/app/src/main/java/com/nova/brain/glass/viewmodel/WelcomeVM.kt +++ b/app/src/main/java/com/nova/brain/glass/viewmodel/WelcomeVM.kt @@ -1,39 +1,7 @@ package com.nova.brain.glass.viewmodel -import androidx.lifecycle.MutableLiveData -import com.nova.brain.glass.repository.Service -import com.xuqm.base.App -import com.xuqm.base.di.manager.HttpManager import com.xuqm.sdhbwfu.core.viewModel.BaseViewModel -import io.reactivex.schedulers.Schedulers -import okhttp3.MediaType.Companion.toMediaTypeOrNull -import okhttp3.RequestBody class WelcomeVM : BaseViewModel() { - val result = MutableLiveData() - fun demoGet() { - result.value = "GET 请求中..." - HttpManager.getApi(Service::class.java).demoGet() - .subscribeOn(Schedulers.io()) - .subscribe({ body -> - result.postValue("GET 响应:\n${body.string()}") - }, { e -> - result.postValue("GET 失败: ${e.message}") - }).adds() - } - - fun demoPost() { - result.value = "POST 请求中..." - val json = """{"demo":"post","from":"glass"}""" - val body = RequestBody.create("application/json".toMediaTypeOrNull(), json) - HttpManager.getApi(Service::class.java).demoPost(body) - .subscribeOn(Schedulers.io()) - .subscribe({ resp -> - result.postValue("POST 响应:\n${resp.string()}") - }, { e -> - result.postValue("POST 失败: ${e.message}") - }).adds() - } - } \ No newline at end of file