fix(task): 修复任务列表上一页功能的滚动逻辑

- 修改了上一页导航的滚动位置计算方式
- 使用findFirstVisibleItemPosition替代findLastVisibleItemPosition
- 添加了页面大小计算以支持批量滚动
- 修正了边界条件检查避免越界
- 更新了提示消息文本为正确的方向指示
这个提交包含在:
徐勤民 2026-04-14 14:13:15 +08:00
父节点 23d51ec89d
当前提交 a574d23f07

查看文件

@ -40,18 +40,21 @@ class TaskListActivity :
"上一页", "查看上一页", "继续上一页" -> { "上一页", "查看上一页", "继续上一页" -> {
val layoutManager = binding.baseRecyclerView.layoutManager as? LinearLayoutManager val layoutManager = binding.baseRecyclerView.layoutManager as? LinearLayoutManager
if (layoutManager != null) { if (layoutManager != null) {
val lastVisible = layoutManager.findLastVisibleItemPosition() val firstVisible = layoutManager.findFirstVisibleItemPosition()
val nextPosition = lastVisible + 1 if (firstVisible > 0) {
if (nextPosition < adapter.itemCount) { val lastVisible = layoutManager.findLastVisibleItemPosition()
layoutManager.scrollToPositionWithOffset(nextPosition, 0) val pageSize = (lastVisible - firstVisible).coerceAtLeast(1)
val previousPosition = (firstVisible - pageSize).coerceAtLeast(0)
layoutManager.scrollToPositionWithOffset(previousPosition, 0)
} else { } else {
ToolsHelper.showMessage("没有下一页了") ToolsHelper.showMessage("没有一页了")
} }
} }
} }
} }
} }
}) } })
}
private val adapter = object : CommonPagedAdapter<TaskItem>(R.layout.item_task_list) { private val adapter = object : CommonPagedAdapter<TaskItem>(R.layout.item_task_list) {
override fun convert(holder: ViewHolder, item: TaskItem, position: Int) { override fun convert(holder: ViewHolder, item: TaskItem, position: Int) {
holder holder
@ -64,4 +67,4 @@ class TaskListActivity :
} }
override fun adapter(): BasePagedAdapter<TaskItem> = adapter override fun adapter(): BasePagedAdapter<TaskItem> = adapter
} }