Отображать разные составные элементы в ленивом столбце нескольких типов после каждого пятого элемента в Jetpack Compose.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Отображать разные составные элементы в ленивом столбце нескольких типов после каждого пятого элемента в Jetpack Compose.

Сообщение Anonymous »

У меня есть два списка: список номеров длиной 200 и список алфавитов длиной 26. Оба списка имеют разные составные элементы для их отображения, например NumberItem() и AlphabetItem().
Я хочу, чтобы AlphabetItem() отображался после каждых 5 элементов NumberItem() в LazyColoumn.
Мой код и результаты:

Код: Выделить всё

    @Composable
fun LazyColumnWithMultipleTypesSample() {
val numList = (1..200).toList()
val alphabetList = ('A'..'Z').toList()
val context = LocalContext.current

LazyColumn(modifier = Modifier.fillMaxSize()) {
items(count = numList.size + alphabetList.size) { index ->

if (index % 5 == 0 && index / 5 < alphabetList.size) { //for index=0 , index%5==0 is always true, hence we make sure index is not 0 so this item does not appear as first item
// Display alphabet item
AlphabetItem(
char = alphabetList[index / 5], //-1 so 0th index also be seen
onClick = { char ->
Toast.makeText(context, "Alphabet clicked: $char", Toast.LENGTH_SHORT)
.show()
}
)
}
// Display number item
val numIndex = index
if (numIndex < numList.size) //checking index overflow is not there
NumberItem(
number = numList[numIndex],
onClick = { number ->
Toast.makeText(context, "Number clicked: $number", Toast.LENGTH_SHORT)
.show()
}
)

}
}
}
Изображение

Обратите внимание, что первый AlphabetItem() находится не в 6-м индексе, а в 0-м индексе.
Я хочу 5 элементов NumberItem(), тогда 1 AlphabetItem() и так далее. Если AlphabetList исчерпается, после этого покажите только NumberItem.
Я пробовал, дополнительная проверка if(index>0)
Я пробовал, дополнительная проверка if(index>0)
Я пробовал. strong> для AlphabetItem(), который загружал все элементы, кроме алфавита «А».

Подробнее здесь: https://stackoverflow.com/questions/784 ... y-5th-item
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»