2017-02-14 7 views
0

enter image description hereКак сделать этот обычай «сеткой» в Android?

enter image description here

мне нужно 9 square клеток затем long rectangle клетки затем снова 9 square клеток. Как мне настроить LinearLayoutManager, чтобы передать его RecyclerView?

Я попробовал два способа:

LinearLayoutManager llm2 = new LinearLayoutManager(App.getContext()); 
llm2.setOrientation(LinearLayoutManager.VERTICAL); 

Но здесь все деталь приходит в отдельной строке.

Если я установил его в .HORIZONTAL, тогда весь элемент будет в одной длинной строке.

Пробовал GridLayoutManager

RecyclerView.LayoutManager glm = new GridLayoutManager(App.getContext(), 3); 

Но вот не знаю, как обращаться длинный предмет.

Любая идея?

ответ

0

Вы можете создать GridLayoutManager с пролетом 3 и возвращает размер 3 в вашем spanSizeLookup для «длинного элемента»:

final int spanCount = 3; 

    GridLayoutManager glm = new GridLayoutManager(this, spanCount); 
    recyclerView.setLayoutManager(glm); 

    glm.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { 
     @Override 
     public int getSpanSize(int position) { 
      // You could also use adapter.getItemViewType(position) and check if 
      // the type of the view is "LONG_VIEW" instead of using a modulo 
      if (position % 10 == 9) { 
       return spanCount; 
      } else { 
       return 1; 
      } 
     } 
    }); 
1

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

так что в основном вы должны положить в массиве, который вы передаете в ваш адаптер «пустой элемент», что указывало бы на полную строку, потому что recyclerview еще нужно знать, что для отображения его

примера:

массив

[data,data,data,data,data,data,data,data,data,"",data,data,etc...] 

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

  • Нет связанных вопросов^_^