1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/vigiles-OptionalSpanSizeRecycleGridView

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 2.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 09:25 60819f7

Можно ли свободно задать, на какое количество колонок будет разделён экран — на три или четыре?

Каждый элемент в зависимости от значений width и height в своём собственном Bean вычисляет, сколько колонок он занимает — одну, две или три.

Можно реализовать группировку, для этого достаточно установить значение в groupId в Bean.

Посмотрите на код ниже, его легко понять.

Использование:

// 40 элементов данных
ArrayList<PictureBean> mPS = PictureFactory.getPictures(140); // Обратите внимание, что Bean должен реализовывать интерфейс ICVURatioBean.

Collections.sort(mPS, new PictureCompartor()); // 0. Важно! Сначала отсортировать данные по целевой компоновке!

int columns = 6; // 1. На сколько колонок разделить экран
CVURatioUtil.ratio(columns, mPS); // 2. Обработать данные

CVURatioLayoutManager mGridLytManager = new CVURatioLayoutManager(this, columns, mPS);  // 3. Указать менеджер компоновки

PictureAdapter mAdapter = new PictureAdapter(mPS);   // Обычный адаптер

RecyclerView mRecyclerView = (RecyclerView) findViewById(R.id.rlv);
mRecyclerView.setLayoutManager(mGridLytManager);
mRecyclerView.setAdapter(mAdapter);

Принцип работы:

В GridLayoutManager RecyclerView есть объект SpanSizeLookup, который используется для управления количеством колонок, занимаемых каждым элементом. Нужно заранее рассчитать, сколько колонок должен занимать каждый элемент, а затем просто взять это значение.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/vigiles-OptionalSpanSizeRecycleGridView.git
git@api.gitlife.ru:oschina-mirror/vigiles-OptionalSpanSizeRecycleGridView.git
oschina-mirror
vigiles-OptionalSpanSizeRecycleGridView
vigiles-OptionalSpanSizeRecycleGridView
master