StaggeredGridLayoutManager динамически изменяет spanCount RecylerView

Как мы можем динамически изменять spanCount RecylerView?

Мой код создает 3 столбца карт в RecyclerView:

 StaggeredGridLayoutManager mFavouratesLayoutManager;
 mFavouratesLayoutManager = new StaggeredGridLayoutManager(3,
                StaggeredGridLayoutManager.VERTICAL);

Я пытаюсь сделать адаптер следующим:

  • один элемент в верхней строке
  • 2 элемента во второй строке
  • 3 элемента ниже

Ответ 1

StaggeredGridLayoutManager не поддерживает это. Вы можете изменить количество проходов, но оно будет влиять на каждую строку. Ваш единственный вариант - иметь полные строки с SGLM.

Если вы используете GridLayoutManager, вы можете достичь этого, установив количество интервалов в 6, затем предоставив SpanSizeLookup, который возвращает

  • 6 для первого элемента
  • 3 для пунктов 1 и 2
  • 2 для предметов 3 4 5

Etc.

Ответ 2

Вы можете попробовать это, так как StaggeredGridLayoutManager не поддерживает это, поэтому используйте Gridlayoutmanager.

enter code here GridLayoutManager layoutManager = new GridLayoutManager(this, 4);layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
    if (position == 1)
        return 6;
    else
        return 2;
}
});