Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 防止用户在底部工作表内查看时拖入底部工作表_Android_Android Recyclerview_Bottom Sheet - Fatal编程技术网

Android 防止用户在底部工作表内查看时拖入底部工作表

Android 防止用户在底部工作表内查看时拖入底部工作表,android,android-recyclerview,bottom-sheet,Android,Android Recyclerview,Bottom Sheet,我有相对的底线行为。在relativelayout中,我有imageview,下面是recyclerview。现在我想防止用户在recyclerview中向下滑动时拖动。我尝试过在onStateChanged方法中扩展设置模式,但它似乎不起作用,因为我使用了recyclerview mBottomSheetBehavior = BottomSheetBehavior.from(bottomsheetLayout); mBottomSheetBehavior.setPeekHeight(0

我有相对的底线行为。在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>


如何防止拖拽,使底部工作表不会折叠?

我也面临这个问题,然后我通过在RecyclerView中使用android:nestedScrollingEnabled=“false”解决了这个问题,这一行可以禁用嵌套滚动行为

BottomSheet和Recyclerview都有scolling行为,这就是产生此问题的原因

<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"/>

我使用ListView和BottomSheetDialog面对这个问题。我相信这是同样不想要的结果。尝试滚动列表可能会关闭底部工作表


我的修正是使用
bottomSheetDialog.setCancelable(false)以防止底部板材对滚动动作作出反应。滚动手势现在只操作ListView。对于这些操作,我有一个“确定”和“取消”按钮。

运气好吗?我遇到了同样的问题。谢谢。这是我丢失的链接。使用这个和米希尔的答案一起工作对我来说,我仍然能够滚动我的回收器视图,而无需拖动底部的工作表。