如何在 BottomSheetDialogFragment 中使用 2 recyclerView

Ras*_*iri 1 java android

我的类从BottomSheetDialogFragment 扩展,在这个布局中使用2 个recyclerViews。但总是 1 recyclerView 可滚动而其他 recyclerView 不起作用。

 <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>
Run Code Online (Sandbox Code Playgroud)

Ras*_*iri 6

终于得到了答案。在 CoordinatorLayout 中使用 2 RecyclerView。

CoordinatorLayout 中的两个 RecyclerView

<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>
Run Code Online (Sandbox Code Playgroud)

请注意,其中一个 RecyclerView 必须是match_parent,另一个是任意大小。建议提供match_parent给第一个 RecyclerView。

这将导致两个 RecyclerViews 可滚动。

您可以使用以下代码轻松地将 RecyclerViews 更改一半。

 WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
            DisplayMetrics displayMetrics = new DisplayMetrics();
            windowManager.getDefaultDisplay().getMetrics(displayMetrics);
            deviceScreenUtilsWidth = displayMetrics.widthPixels;
recyclerViewLeft.getLayoutParams().width = deviceScreenUtilsWidth / 2;
Run Code Online (Sandbox Code Playgroud)