2016-07-25 17 views

答えて

2

あなたは、私がこのLIBの1.0.0-SNAPSHOT版をテストしたtwoway-view

でRecyclerView行動のこの種を達成することができます。

これは、古いプロジェクトのようなものですが、それはあなた自身のRecyclerView/LayoutManagerを書くのに役立ちます。あなたはスパンロジックを設定する必要がRecyclerViewAdapterであなたのレイアウト

例:

<org.lucasr.twowayview.widget.TwoWayView 
     android:id="@+id/fragment_drawer_list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginBottom="60dp" 
     android:clipToPadding="false" 
     android:paddingBottom="32dp" 
     app:twowayview_layoutManager="SpannableGridLayoutManager" 
     app:twowayview_numColumns="3" 
     app:twowayview_numRows="3" /> 

結果のスクリーンショット:

@Override 
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 
     super.onBindViewHolder(holder, position); 
     final SpannableGridLayoutManager.LayoutParams lp = 
       (SpannableGridLayoutManager.LayoutParams) holder.itemView.getLayoutParams(); 

     final int span1; 
     final int span2; 
     if (position == 0) { 
      span1 = 2; 
      span2 = 2; 
     } else if (position == 3) { 
      span1 = 2; 
      span2 = 3; 
     } else { 
      span1 = 1; 
      span2 = 1; 
     } 

     final int colSpan = (span2); 
     final int rowSpan = (span1); 

     if (lp.rowSpan != rowSpan || lp.colSpan != colSpan) { 
      lp.rowSpan = rowSpan; 
      lp.colSpan = colSpan; 
      holder.itemView.setLayoutParams(lp); 
     } 
} 

私は図書館(TwoWayView)からカスタムRecyclerViewを使用: result screenshot

関連する問題