fix(task): 修复任务列表上一页功能的滚动逻辑
- 修改了上一页导航的滚动位置计算方式 - 使用findFirstVisibleItemPosition替代findLastVisibleItemPosition - 添加了页面大小计算以支持批量滚动 - 修正了边界条件检查避免越界 - 更新了提示消息文本为正确的方向指示
这个提交包含在:
父节点
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
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户