有一个BottomSheetDialogFragment
,在垂直拖拽状态下可以很好地工作于片段布局,并且可以打开STATE_EXPANDED
模式。里面有一个recyclerview
,底部工作表上的垂直拖拽有效,但是由于滚动事件,recyclerview
上的垂直拖拽无法工作。当到达列表顶部并仍然向上滚动以折叠底部工作表时,如何使底部工作表拖拽事件代替recyclerview
的滚动事件工作?
BottomSheetDialogFragment层次结构:
FragmentRootLinearLayout -> ...BottomLinearLayout... -> ViewPager2 -> RecyclerView
底部对话框片段的 XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/BookInfoFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/tool_sheet_bg"
android:orientation="vertical"
app:layout_behavior="@string/bottom_sheet_behavior"
app:behavior_hideable="true"
android:clickable="true"
android:focusable="true">
<LinearLayout
android:id="@+id/tabs_linear_layout"
style="@style/ThemeSettingsRowContainer"
android:layout_width="match_parent"
android:layout_height="550dp"
android:layout_marginTop="15dp"
android:background="@drawable/xml_rounded_corner_bg2"
android:clickable="true"
android:focusable="true"
android:paddingTop="0dp"
android:paddingBottom="0dp">
<com.google.android.material.tabs.TabLayout
android:id="@+id/book_loading_tablayout"
android:layout_width="match_parent"
android:layout_height="50dp" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/book_loading_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:focusable="true" />
</LinearLayout>
</LinearLayout>
编辑: 问题在于ViewPager2,当我将其更改为ViewPager时,拖动工作正常。相同的问题:BottomSheet + ViewPager2 拖动隐藏不起作用