使用布局类似下图(一个横向+一个纵向):
image.png
这样的布局如果按照正常的方向布局然后放到BottomSheetDialog会导致只有横向的列表可以滑动,纵向的列表会无法滑动
解决办法
不用使用LinearLayout进行上下嵌套,采用相对或者其他布局,把下面列表优先放入父控件,即父控件去查找可滑动子控件时,优先找到竖向列表,这样即可实现横向和纵向的列表都可以滑动了
大致代码如下:
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerVertical"
android:layout_width="match_parent"
android:layout_height="220dp"
android:visibility="visible"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
tools:itemCount="6"
tools:listitem="@layout/item_trans_check" />
<TextView
android:id="@+id/tvTitle2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:fontFamily="@font/roboto_medium"
android:gravity="center"
android:includeFontPadding="true"
tools:text="纵向列表"
android:textColor="#FF333333"
android:textSize="16sp"
android:textStyle="bold"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@id/recyclerVertical" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerHorizontal"
android:layout_width="match_parent"
android:layout_height="66dp"
android:clipToPadding="false"
android:orientation="horizontal"
android:paddingHorizontal="5dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toTopOf="@id/tvTitle2"
tools:itemCount="5"
tools:listitem="@layout/item_trans_type" />
</androidx.constraintlayout.widget.ConstraintLayout>