3

ここに画像の説明を入力 GridLayoutManager と組み合わせて RecyclerView を使用して、上の図のようなレイアウトを実現しようとしています。位置に基づいて setSpanSizeLookup を設定しようとしましたが、上記のデザインを模倣できませんでした..

誰か助けてください。

アップデート

ここに画像の説明を入力

4

1 に答える 1

11
 private GridLayoutManager getGridLayoutManager() {
    final GridLayoutManager manager = new GridLayoutManager(getActivity(), 6);
    manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {
            int index = postion % 5;
            switch(index){
               case 0: return 2;
               case 1: return 2;
               case 2: return 2;
               case 3: return 3;
               case 4: return 3;
            }
           }
    });
    return manager;
}

マージンの更新

public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
  private int space;

  public SpacesItemDecoration(int space) {
       this.space = space;
   }

   @Override
  public void getItemOffsets(Rect outRect, View view, 
  RecyclerView parent, RecyclerView.State state) {
    outRect.right = space;
    outRect.bottom = space;
  }
 }
于 2015-07-20T08:43:51.680 に答える