摘要
尝试类似Google Maps布局行为
详细信息
我正在尝试实现具有以下功能的BottomSheetBehavior:
ViewGroup
(任意)-> ViewPager
(片段)-> RecyclerView
(垂直)->多个水平可滚动RecyclerView
/或任何可滚动视图。
可水平滚动的子RecyclerViews是父RecyclerView
的ItemHolders的一部分(可垂直滚动)
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".bottom.BottomSheetActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_bottom_sheet" />
<android.support.v4.widget.NestedScrollView
android:id="@+id/frame_bottom"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:behavior_hideable="false"
app:behavior_peekHeight="240dp"
android:background="@android:color/white"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView_bottom"
android:layout_width="match_parent"
android:nestedScrollingEnabled="true"
android:layout_height="match_parent"/>
</FrameLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
问题
当用户触摸水平可滚动元素并尝试垂直滚动时,父RecyclerView不会向上/向下滚动。
当用户触摸水平可滚动元素并尝试垂直滚动时,父级RecyclerView照常工作。
仅当使用BottomSheetBehavior而不使用BottomSheetBehavior时,才会发生此问题。
我尝试使用FrameLayout而不是NestedScrollView,还尝试直接将ReyclerView用作BottomSheetBehavior视图组。没用。
那么,当我使用BottomSheetBehavior时,如何将垂直滚动触摸事件从作为viewHolder一部分的可水平滚动的reyclerView传递给父RecyclerView?