为什么使用BottomSheetBehavior滚动两个RecyclerView内部布局不起作用?

时间:2017-06-02 15:26:10

标签: android android-constraintlayout bottom-sheet

我有BottomSheetBehavior的布局 我正在使用ConstraintLayout,在布局内我有两个RecyclerView 之前有两个RecyclerView的卷轴完美, 一旦我添加第二个包含非常小的内容的RecyclerView, 最多3行,第二个RecyclerView的滚动被禁用,当我将第一个RecyclerView更改为简单的LinearLayout时,它也可以正常工作。 注意:第一个Recyclerview内容非常小,不需要滚动,只需要滚动第二个。

 <android.support.constraint.ConstraintLayout
        android:id="@+id/store_bottom_sheet"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="@dimen/bottom_navigation_height"
        android:background="@android:color/transparent"
        android:fitsSystemWindows="true"
        app:behavior_hideable="false"
        app:behavior_peekHeight="350dp"
        app:layout_behavior="@string/bottom_sheet_behavior">


        <android.support.constraint.ConstraintLayout
            android:id="@+id/constraintLayout"
            android:layout_width="0dp"
            android:layout_height="60dp"
            android:layout_marginTop="8dp"
            android:background="@drawable/rounded_shape"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent">

 <ImageView
                android:id="@+id/imageView"
                android:layout_width="19dp"
                android:layout_height="23dp"
                android:layout_marginStart="16dp"
                android:layout_marginTop="19dp"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:srcCompat="@drawable/ic_search"/>
 </android.support.constraint.ConstraintLayout>

  <android.support.v7.widget.RecyclerView
                android:id="@+id/list_filter"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:adapter="@{viewModel.filterAdapter}"
                   app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
          app:layout_constraintTop_toBottomOf="@+id/constraintLayout"/>


 <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerView2"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginTop="8dp"
            android:nestedScrollingEnabled="true"
            app:adapter="@{viewModel.findStoresAdapter}"
            app:dividerDrawable="@{@drawable/vertical_divider}"
         app:layoutManager="android.support.v7.widget.LinearLayoutManager"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/list_filter"
            app:layout_constraintVertical_bias="0.0"/>
</android.support.constraint.ConstraintLayout>

1 个答案:

答案 0 :(得分:0)

因为两个可在同一方向滚动的RecyclerView彼此冲突。使用一个带有不同ViewTypes的RecyclerView。