前言
使用BottomSheetDialog弹窗时,里面嵌套了一个纵向的RecyclerView,弹出后加载列表数据,发现弹窗不能滑动,产生了滑动冲突。
一、使用步骤
1.布局示例
代码如下(示例):
<androidx.appcompat.widget.LinearLayoutCompat 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="wrap_content"
android:background="@drawable/yuan_jiao_15dp_top_bai"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="13dp"
android:layout_marginTop="12dp"
android:layout_marginRight="13dp"
android:orientation="horizontal"
android:overScrollMode="never"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_results_dialog" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/llc_one"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:background="@drawable/yuan_jiao_5dp_top"
android:padding="8dp"
android:text="相关数据"
android:textColor="#ff333333"
android:textSize="16dp" />
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:overScrollMode="never"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:spanCount="2"
tools:listitem="@layout/item_recommend" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.core.widget.NestedScrollView>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
如上例子BottomSheetDialog中嵌套了两个列表,关键属性为android:overScrollMode="never"设置一下
2. BottomSheetDialog简单示例
代码如下(示例):
BottomSheetDialog dialog = new BottomSheetDialog(this);
View bottomSheetDialog=LayoutInflater.from(this).inflate(R.layout.ldentification_results_dialog, null);
dialog.setContentView(bottomSheetDialog);
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
dialog.show();
WidgetUtils.transparentBottomSheetDialogBackground(dialog);
该处使用的WidgetUtils为第三方XUI
需要引用 //XUIView
implementation ‘com.github.xuexiangjys:XUI:1.2.1’
总结
以上就是今天要讲的BottomSheetDialog滑动冲突问题。