2016-02-03 2 views
0

У меня есть фрагмент, содержащий два RecyclerViews (один в сетке из двух столбцов и другой для моего фактического фида).Пользовательский GridLayoutManager, предоставляющий RecyclerView с WRAP_CONTENT

<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" 
    /> 

Как реализовать два RecyclerViews в одном макете?

ответ

0

Попробуйте использовать один RecyclerView с GridLayoutManager с пользовательским SpanSizeLookup:

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); 

и использовать различный держатель для различных типов строки в адаптере.

Смежные вопросы