feat: 任务卡片切换改为左右滑动
上下滑动留给内容滚动(长任务可下滑查看更多), 左右滑动切换任务卡片(左滑下一个,右滑上一个)。 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -32,7 +32,7 @@ import kotlin.math.abs
|
||||
* 流程(和旧版一致):
|
||||
* 1. queryTaskIds 获取 ID+name 列表
|
||||
* 2. lookTaskDetail 获取当前任务完整详情
|
||||
* 3. 上滑/下滑切换 taskIndex → 重新获取详情
|
||||
* 3. 左滑/右滑切换 taskIndex → 重新获取详情
|
||||
* 4. 操作成功 → 刷新详情 → 刷新列表
|
||||
*/
|
||||
@AndroidEntryPoint
|
||||
@@ -86,19 +86,19 @@ class TaskListFragment : BaseFragment<FragmentTaskListBinding>() {
|
||||
findNavController().popBackStack()
|
||||
}
|
||||
|
||||
// 上下滑手势(切换任务)
|
||||
// 左右滑手势(切换任务),上下滑留给内容滚动
|
||||
gestureDetector = GestureDetector(requireContext(), object : GestureDetector.SimpleOnGestureListener() {
|
||||
override fun onFling(e1: MotionEvent?, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean {
|
||||
if (e1 == null) return false
|
||||
val dy = e2.y - e1.y
|
||||
val dx = e2.x - e1.x
|
||||
// 垂直滑动且幅度 > 水平
|
||||
if (abs(dy) > abs(dx) && abs(dy) > 50) {
|
||||
if (dy < 0) {
|
||||
// 上滑 → 下一个任务
|
||||
// 水平滑动且幅度 > 垂直
|
||||
if (abs(dx) > abs(dy) && abs(dx) > 50) {
|
||||
if (dx < 0) {
|
||||
// 左滑 → 下一个任务
|
||||
nextTask()
|
||||
} else {
|
||||
// 下滑 → 上一个任务
|
||||
// 右滑 → 上一个任务
|
||||
prevTask()
|
||||
}
|
||||
return true
|
||||
@@ -197,9 +197,9 @@ class TaskListFragment : BaseFragment<FragmentTaskListBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
// ===== 上下滑切换 =====
|
||||
// ===== 左右滑切换 =====
|
||||
|
||||
/** 下一个任务(上滑) */
|
||||
/** 下一个任务(左滑) */
|
||||
private fun nextTask() {
|
||||
if (taskIndex < taskList.size - 1) {
|
||||
taskIndex++
|
||||
@@ -207,7 +207,7 @@ class TaskListFragment : BaseFragment<FragmentTaskListBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
/** 上一个任务(下滑) */
|
||||
/** 上一个任务(右滑) */
|
||||
private fun prevTask() {
|
||||
if (taskIndex > 0) {
|
||||
taskIndex--
|
||||
|
||||
Reference in New Issue
Block a user