GridView: GridView с различными размерами ячеек и макетом,
Привет мне нужен gridview, который имеет 2 различных макета в ячейках сетки в соответствии с типом ячейки сетки. Вот я привожу пример scrren, нарисованный на бумаге.
2 ответа
Решение
Пользователь RecyclerView
с GridLayoutManager
которые установили SpanSizeLookup
, Так будет и так:
int fullSpanSize = 3;
int normalSpanSize = 1;
GridLayoutManager layout = new GridLayoutManager(context, fullSpanSize);
layout.setSpaneSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
return position == 3 ? fullSpanSize : normalSpanSize;
}
});
recyclerView.setLayoutManager(layout);
Вы можете использовать StaggeredGridLayoutManager, затем в методе переопределения адаптера getItemViewType(int position) для возврата различных viewTypes в зависимости от типа ячейки / данных, поэтому при раздувании элементов в onCreateViewHolder (родительский элемент ViewGroup, final int viewType) вы можете выбрать другой макет для ячейка на основе viewType.