From a574d23f07b57f5f03e7817169c4e088b5b30f69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=8B=A4=E6=B0=91?= Date: Tue, 14 Apr 2026 14:13:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(task):=20=E4=BF=AE=E5=A4=8D=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=88=97=E8=A1=A8=E4=B8=8A=E4=B8=80=E9=A1=B5=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E7=9A=84=E6=BB=9A=E5=8A=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改了上一页导航的滚动位置计算方式 - 使用findFirstVisibleItemPosition替代findLastVisibleItemPosition - 添加了页面大小计算以支持批量滚动 - 修正了边界条件检查避免越界 - 更新了提示消息文本为正确的方向指示 --- .../com/nova/brain/glass/ui/TaskListActivity.kt | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/nova/brain/glass/ui/TaskListActivity.kt b/app/src/main/java/com/nova/brain/glass/ui/TaskListActivity.kt index 6cec739..e98e658 100644 --- a/app/src/main/java/com/nova/brain/glass/ui/TaskListActivity.kt +++ b/app/src/main/java/com/nova/brain/glass/ui/TaskListActivity.kt @@ -40,18 +40,21 @@ class TaskListActivity : "上一页", "查看上一页", "继续上一页" -> { val layoutManager = binding.baseRecyclerView.layoutManager as? LinearLayoutManager if (layoutManager != null) { - val lastVisible = layoutManager.findLastVisibleItemPosition() - val nextPosition = lastVisible + 1 - if (nextPosition < adapter.itemCount) { - layoutManager.scrollToPositionWithOffset(nextPosition, 0) + val firstVisible = layoutManager.findFirstVisibleItemPosition() + if (firstVisible > 0) { + val lastVisible = layoutManager.findLastVisibleItemPosition() + val pageSize = (lastVisible - firstVisible).coerceAtLeast(1) + val previousPosition = (firstVisible - pageSize).coerceAtLeast(0) + layoutManager.scrollToPositionWithOffset(previousPosition, 0) } else { - ToolsHelper.showMessage("没有下一页了") + ToolsHelper.showMessage("没有上一页了") } } } } } - }) } + }) + } private val adapter = object : CommonPagedAdapter(R.layout.item_task_list) { override fun convert(holder: ViewHolder, item: TaskItem, position: Int) { holder @@ -64,4 +67,4 @@ class TaskListActivity : } override fun adapter(): BasePagedAdapter = adapter -} \ No newline at end of file +}