how use 2 recyclerView in BottomSheetDialogFragment

后端 未结 2 1790
[愿得一人]
[愿得一人] 2020-12-18 16:14

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



        
相关标签:
2条回答
  • 2020-12-18 16:48

    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);
    
    0 讨论(0)
  • 2020-12-18 17:07

    Finally got the answer. use 2 RecyclerView 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;
    
    0 讨论(0)
提交回复
热议问题