feat: 任务卡片切换改为左右滑动

上下滑动留给内容滚动(长任务可下滑查看更多),
左右滑动切换任务卡片(左滑下一个,右滑上一个)。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
dongliang
2026-05-06 17:07:15 +09:30
parent 7dd659358d
commit 1a6c2f2efc

View File

@@ -32,7 +32,7 @@ import kotlin.math.abs
* 流程(和旧版一致): * 流程(和旧版一致):
* 1. queryTaskIds 获取 ID+name 列表 * 1. queryTaskIds 获取 ID+name 列表
* 2. lookTaskDetail 获取当前任务完整详情 * 2. lookTaskDetail 获取当前任务完整详情
* 3. 滑/滑切换 taskIndex → 重新获取详情 * 3. 滑/滑切换 taskIndex → 重新获取详情
* 4. 操作成功 → 刷新详情 → 刷新列表 * 4. 操作成功 → 刷新详情 → 刷新列表
*/ */
@AndroidEntryPoint @AndroidEntryPoint
@@ -86,19 +86,19 @@ class TaskListFragment : BaseFragment<FragmentTaskListBinding>() {
findNavController().popBackStack() findNavController().popBackStack()
} }
// 上下滑手势(切换任务) // 左右滑手势(切换任务),上下滑留给内容滚动
gestureDetector = GestureDetector(requireContext(), object : GestureDetector.SimpleOnGestureListener() { gestureDetector = GestureDetector(requireContext(), object : GestureDetector.SimpleOnGestureListener() {
override fun onFling(e1: MotionEvent?, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean { override fun onFling(e1: MotionEvent?, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean {
if (e1 == null) return false if (e1 == null) return false
val dy = e2.y - e1.y val dy = e2.y - e1.y
val dx = e2.x - e1.x val dx = e2.x - e1.x
// 垂直滑动且幅度 > 水平 // 水平滑动且幅度 > 垂直
if (abs(dy) > abs(dx) && abs(dy) > 50) { if (abs(dx) > abs(dy) && abs(dx) > 50) {
if (dy < 0) { if (dx < 0) {
// 滑 → 下一个任务 // 滑 → 下一个任务
nextTask() nextTask()
} else { } else {
// 滑 → 上一个任务 // 滑 → 上一个任务
prevTask() prevTask()
} }
return true return true
@@ -197,9 +197,9 @@ class TaskListFragment : BaseFragment<FragmentTaskListBinding>() {
} }
} }
// ===== 上下滑切换 ===== // ===== 左右滑切换 =====
/** 下一个任务(滑) */ /** 下一个任务(滑) */
private fun nextTask() { private fun nextTask() {
if (taskIndex < taskList.size - 1) { if (taskIndex < taskList.size - 1) {
taskIndex++ taskIndex++
@@ -207,7 +207,7 @@ class TaskListFragment : BaseFragment<FragmentTaskListBinding>() {
} }
} }
/** 上一个任务(滑) */ /** 上一个任务(滑) */
private fun prevTask() { private fun prevTask() {
if (taskIndex > 0) { if (taskIndex > 0) {
taskIndex-- taskIndex--