Аннотация
Попробуйте что-то похожее на поведение макета Google Maps
Деталь
Я пытаюсь реализовать BottomSheetBehavior, который имеет
ViewGroup
(любой) -> ViewPager
(фрагменты) -> RecyclerView
(по вертикали) -> Несколько прокручиваемых по горизонтали RecyclerView
/ или любой прокручиваемый вид.
Горизонтально прокручиваемые дочерние элементы RecyclerView являются частью ItemHolders родительского элемента RecyclerView
(с вертикальной прокруткой)
<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. Это не сработало.
Итак, как передать события касания вертикальной прокрутки из горизонтально прокручиваемого reyclerView, являющегося частью viewHolder, в родительский RecyclerView при использовании BottomSheetBehavior?