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 列表
|
* 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--
|
||||||
|
|||||||
Reference in New Issue
Block a user