【发布时间】:2021-05-29 08:51:26
【问题描述】:
在片段布局和打开STATE_EXPANDED 模式上有一个BottomSheetDialogFragment 和工作良好的垂直拖动状态。里面有一个recyclerview,垂直拖动在底部工作表上有效,但由于滚动事件,它不适用于recyclerview。当到达列表顶部并且仍然向上滚动以折叠底部工作表时,底部工作表拖动事件如何工作而不是 recyclerview 上的滚动事件?
BottomSheetDialogFragment 层次结构:
FragmentRootLinearLayout -> ...BottomLinearLayout... -> ViewPager2 -> RecyclerView
BottomSheetDialogFragment 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 drag to hide not works
【问题讨论】:
-
添加你的xml代码@ATES
-
就是这样。
-
所以当您到达列表顶部时,您正试图向下拖动底部工作表,但它没有折叠,而是回收站视图仍在滚动?我说的对吗?@ATES
-
是的,你是对的,并且 recyclerview onScrollEvent 没有处理,因为从顶部滚动完成。
标签: java android android-layout android-recyclerview