1

my class extends from BottomSheetDialogFragment and in this layout use 2 recyclerViews. but always 1 recyclerView scrollable and other recyclerView not work.

 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainCoordinatorLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <LinearLayout
        android:id="@+id/mainBottomSheet"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">


        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerViewOne"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerViewTwo"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" />

    </LinearLayout>
</android.support.design.widget.CoordinatorLayout>
Rasoul Miri
  • 11,234
  • 1
  • 68
  • 78

2 Answers2

6

Finally got the answer. use 2 RecyclerView in CoordinatorLayout.

Two RecyclerViews in CoordinatorLayout

<android.support.design.widget.CoordinatorLayout
         android:id="@+id/mainBottomSheet"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="@color/white">

         <android.support.v7.widget.RecyclerView
                  android:id="@+id/recyclerViewRight"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent" />

         <android.support.v7.widget.RecyclerView
                  android:id="@+id/recyclerViewLeft"
                  android:layout_width="200dp"
                  android:layout_height="match_parent" />

</android.support.design.widget.CoordinatorLayout>

Note that one of the RecyclerView must be match_parent and the other one is of an arbitrary size. Advisable to provide match_parent to first RecyclerView.

This will cause two RecyclerViews scrollable.

You can easily change the RecyclerViews by half using the code below.

 WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
            DisplayMetrics displayMetrics = new DisplayMetrics();
            windowManager.getDefaultDisplay().getMetrics(displayMetrics);
            deviceScreenUtilsWidth = displayMetrics.widthPixels;
recyclerViewLeft.getLayoutParams().width = deviceScreenUtilsWidth / 2;
Sneh Pandya
  • 8,197
  • 7
  • 35
  • 50
Rasoul Miri
  • 11,234
  • 1
  • 68
  • 78
1

I have a situation similar t this but in my case first recyclerview is in horizontal and the second one is in vertical. I couldn't scroll the second one directly. So I solved this issue by following way

<android.support.design.widget.CoordinatorLayout
      <android.support.v4.widget.NestedScrollView

      <android.support.v7.widget.RecyclerView
      <android.support.v7.widget.RecyclerView

and by setting the second recyclerview

     recycler.setNestedScrollingEnabled(false);
LvN
  • 701
  • 1
  • 6
  • 22