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
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<TaskItem>(R.layout.item_task_list) {
override fun convert(holder: ViewHolder, item: TaskItem, position: Int) {
holder