Files
xqwatch/app/src/main/res/layout/fragment_home.xml
dongliang 6021171a40 fix: 修复下拉手势无响应,改用自定义SwipeDownLayout
ViewPager2内部RecyclerView会拦截触摸事件,导致setOnTouchListener
和GestureDetector都收不到下拉手势。

改用SwipeDownLayout(自定义FrameLayout),在onInterceptTouchEvent中
检测下拉——事件到达子View之前就能观察到,原理同SwipeRefreshLayout。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 21:03:03 +09:30

48 lines
1.7 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- 首页容器:固定状态栏 + ViewPager2 + 打卡面板覆盖层 -->
<com.xiaoqu.watch.ui.widget.SwipeDownLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipeDownLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background">
<!-- 主内容区 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingStart="21dp"
android:paddingTop="27dp"
android:paddingEnd="21dp">
<!-- 固定状态栏 -->
<com.xiaoqu.watch.ui.widget.StatusBarView
android:id="@+id/statusBar"
android:layout_width="match_parent"
android:layout_height="24dp"
android:layout_marginBottom="3dp" />
<!-- ViewPager2 -->
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
<!-- 考勤打卡面板(覆盖层,默认隐藏) -->
<com.xiaoqu.watch.ui.punch.PunchPanelView
android:id="@+id/punchPanel"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- 弹窗容器(最顶层,用于 QuTipDialog -->
<FrameLayout
android:id="@+id/dialogContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
</com.xiaoqu.watch.ui.widget.SwipeDownLayout>