Отображение структуры типа тега в Staggered Recyclerview

В настоящее время я работаю над структурой тегов и для отображения того, что я использовал диспетчер компоновки Staggeredgrid из Recyclerview, чтобы получить требуемый результат, как показано ниже:

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

Но когда я использовал StaggeredGrid, он дает результат, как показано ниже:

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

Мой код для отображения адаптера в Recyclerview приведен ниже:

val staggeredGridLayoutManager = StaggeredGridLayoutManager(2, LinearLayoutManager.VERTICAL)
rvTags.layoutManager = staggeredGridLayoutManager
rvTags.adapter = AllergyAdapter(tags)

При увеличении числа пролетов до 3 все элементы сокращаются. Я хочу, чтобы если «Арахисовое масло» достаточно велико, тогда только 1 элемент должен входить в 1 ряд, а если «ним, чеснок и соя» могут поместиться в 1 ряд, тогда он должен поместиться.

По сути, мне нужен способ динамического подсчета диапазона в соответствии с размером содержимого.

Любая помощь будет оценена по достоинству.

Предлагаемый ответ не работает, потому что он подсчитывает количество диапазонов для всего Recyclerview, а не для конкретной строки.


person Siraj Sumra    schedule 13.02.2018    source источник


Ответы (2)


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

Пожалуйста, проверьте URL-адрес библиотеки тегов.

Просмотры тегов

Вот наиболее подходящий вид: ChipView

С настраиваемыми макетами: ChipView

А для динамической привязки столбца вы можете использовать AsymmetricGridView.

URL: AsymmetricGridView

person Jaymin    schedule 13.02.2018
comment
Chipview не работал должным образом. Я уже пробовал AsymmetricGridView. Это запутано с точки зрения адаптации котлина. - person Siraj Sumra; 13.02.2018
comment
По вашему предложению я получил android-arsenal.com/details/1/2566 из Android Arsenal, и он работал отлично. Спасибо - person Siraj Sumra; 13.02.2018
comment
упомяните это в своем ответе, чтобы помочь другим, не все будут читать комментарии - person Umar Ata; 13.02.2018

layoutManager = новый StaggeredGridLayoutManager (4, LinearLayoutManager.HORIZONTAL);

person kamran rahmatullah    schedule 19.07.2019