diff --git a/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt b/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt index ca8698c..27398a0 100644 --- a/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt @@ -273,7 +273,7 @@ class HomeFragment : BaseFragment() { findNavController().navigate(R.id.action_home_to_taskList, bundle) } - /** 设置下拉手势 → 进入考勤打卡页 */ + /** 设置下拉手势 → 进入考勤打卡页(在状态栏区域检测) */ @android.annotation.SuppressLint("ClickableViewAccessibility") private fun setupPullDownGesture() { val gestureDetector = android.view.GestureDetector( @@ -287,21 +287,22 @@ class HomeFragment : BaseFragment() { ): Boolean { if (e1 == null) return false val dy = e2.y - e1.y - val dx = e2.x - e1.x - // 下拉(dy > 0)且垂直幅度 > 水平 - if (dy > 80 && kotlin.math.abs(dy) > kotlin.math.abs(dx)) { + // 下拉手势(dy > 0 且速度 > 0) + if (dy > 30 && velocityY > 100) { navigateToPunch() return true } return false } + + override fun onDown(e: android.view.MotionEvent): Boolean = true } ) - // 给 ViewPager2 内部的 RecyclerView 添加触摸监听 - binding.viewPager.getChildAt(0)?.setOnTouchListener { _, event -> + // 在状态栏上方的触摸区域检测下拉(不被 ViewPager2 拦截) + binding.pullDownArea.setOnTouchListener { _, event -> gestureDetector.onTouchEvent(event) - false + true } } diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 5041af2..1ead59a 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -9,12 +9,20 @@ android:paddingTop="27dp" android:paddingEnd="21dp"> - - + + android:layout_height="40dp" + android:layout_marginBottom="3dp"> + + + +