我有一个片段,其中包含两个RecyclerViews(一个在两列网格中,另一个在我的实际Feed中)。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:scrollbars="none"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/second_recycler_view"
android:scrollbars="none"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/recycler_view"
/>
如何在一个布局中实现两个RecyclerView?
答案 0 :(得分:1)
尝试使用带有自定义SpanSizeLookup的GridLayoutManager的单个RecyclerView:
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 2);
GridLayoutManager.SpanSizeLookup columnSpanner = new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
return adapter.getItemViewType(position) == R.layout.your_two_column_row_layout ? 1 : 2;
}
};
gridLayoutManager.setSpanSizeLookup(columnSpanner);
recyclerView.setLayoutManager(gridLayoutManager);
并在适配器中为不同类型的行使用不同的holder。