我的课从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>
最佳答案
终于得到了答案。
在CoordinatorLayout中使用2 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>
请注意,一个RecyclerView必须为
match_parent
,另一个必须为任意大小。建议为第一个RecyclerView提供match_parent
。这将导致两个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;