Я хочу, чтобы 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
Мобильная версия