RecyclerView GridLayoutManager — чередование строк из 3 и 2 столбцов

Доброе утро-

У меня есть требование в моем проекте, где мне нужно показать альтернативные строки с помощью диспетчера GridLayout. то есть; В первой строке мне нужно показать 2 изображения, а во второй строке мне нужно показать 3 изображения.

Я использую диспетчер GridLayout с recyclerview, и ниже приведен мой код.

GridLayoutManager mNewlyAddedManager = new GridLayoutManager(mContext,**3**);
mMyTrawelLogsRecycleView.setLayoutManager(mNewlyAddedManager);
MyTrawellogsDetailsAdapter mImageAdapter = newMyTrawellogsDetailsAdapter(mContext, listAddedTour, false);
mMyTrawelLogsRecycleView.addItemDecoration(new SpacesItemDecoration(1));
mMyTrawelLogsRecycleView.setAdapter(mImageAdapter);

Скриншот требования:

введите здесь описание изображения

Мое выходное изображение:

введите здесь описание изображения


person Anusha Reddy Gujjula    schedule 02.07.2018    source источник
comment
Возможный дубликат GridView с другим количеством столбцы по номеру строки   -  person Adrian Le Roy Devezin    schedule 02.07.2018
comment
stackoverflow.com/questions/22143569/   -  person Adrian Le Roy Devezin    schedule 02.07.2018
comment
@ Адриан Ле Рой Девезин, могу ли я подать в суд на recyclerview?   -  person Anusha Reddy Gujjula    schedule 02.07.2018
comment
пожалуйста, уточните, что вы имеете в виду @Anuash   -  person Adrian Le Roy Devezin    schedule 02.07.2018
comment
Я исключаю что-то с Recyclerview вместо макета планшета. то есть; это с GridLayoutManager   -  person Anusha Reddy Gujjula    schedule 02.07.2018
comment
stackoverflow.com/questions/42629963 /   -  person Adrian Le Roy Devezin    schedule 02.07.2018
comment
просто используйте setSpanSizeLookup и определите количество столбцов, которые будут отображаться в соответствующих случаях.   -  person Gautam    schedule 02.07.2018


Ответы (1)


Используйте 6 столбцов, а затем переопределите getSpanSize

@Override
public int getSpanSize(int position) {
    return getSizeForItem(position);
}

Вам нужно будет сделать функцию, которая возвращает количество столбцов, которые будет занимать каждый элемент, либо 2, либо 3.

person Melvin Bradley    schedule 02.07.2018