我有相对布局作为底片行为。在relativelayout里面,我有imageview,在它下面是recyclerview。现在我想阻止用户在recyclerview中向下滑动时拖动。我已经尝试在onStateChanged方法中扩展设置模式,但它似乎不起作用,因为我有recyclerview。
mBottomSheetBehavior = BottomSheetBehavior.from(bottomsheetLayout);
mBottomSheetBehavior.setPeekHeight(0);
mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
if (newState == BottomSheetBehavior.STATE_DRAGGING) {
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
}
});
我的xml文件是:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:visibility="visible"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
android:id="@+id/dragView1">
<ImageView
android:layout_width="32dp"
android:src="@drawable/iv_close"
android:padding="@dimen/margin_5"
android:layout_marginTop="@dimen/margin_5"
android:id="@+id/ivItemsClose"
android:layout_marginRight="@dimen/margin_5"
android:clickable="true"
android:layout_alignParentRight="true"
android:layout_height="32dp" />
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:id="@+id/rcBoutique"
android:overScrollMode="never"
android:layout_height="wrap_content"/>
</Relativelayout>
如何防止拖拽以使底片不会塌陷?
答案 0 :(得分:0)
我也遇到了这个问题,然后我在RecyclerView中使用android:nestedScrollingEnabled="false"
解决了这一问题,此行可以禁用嵌套滚动行为。
BottomSheet和Recyclerview都具有杂乱的行为,这就是导致此问题的原因。
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:id="@+id/rcBoutique"
android:overScrollMode="never"
android:layout_height="wrap_content"
android:nestedScrollingEnabled="false"/>
答案 1 :(得分:0)
我使用ListView和BottomSheetDialog面临此问题。我相信这是同样令人讨厌的结果。尝试滚动列表可能会使底部页面消失。
我的解决方法是使用bottomSheetDialog.setCancelable(false);
来防止bottomSheet对滚动操作作出反应。现在,滚动手势只能操纵ListView。对于这些操作,我有一个“确定”和“取消”按钮。