StickyHeader с нумерацией страниц в Jetpack ComposeAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 StickyHeader с нумерацией страниц в Jetpack Compose

Сообщение Anonymous »

Я попробовал добавить StickyHeader, как предложено в этом ответе. Однако производительность не близка к готовому коду из-за цикла, поскольку мой список немного больше.
Вот моя попытка:

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

LazyColumn(
reverseLayout = true
) {
val itemCount = list.itemCount
var lastHeader: String? = null

for (index in 0 until itemCount) {
val item = list.peek(index)
val headerString = item?.date

if (item !== null && headerString != lastCharacter) {
stickyHeader(key = headerString) {
Text(
text = "Header: $headerString",
modifier = Modifier
.fillMaxWidth()
.background(Color.Red)
.padding(16.dp)
)
}
}

item(key = item?.communicationId) {
// Gets item, triggering page loads if needed
when (val item = list[index]) {
is Type1 -> {
[email protected] {
Type1Cell()
}
}
is Type2 -> {
[email protected] {
Type2Cell()
}

}
null -> {
[email protected] {
LoadingCell()
}
}
}
}
lastHeader = headerString
}
}
Источником данных является обычный поток, собираемый следующим образом:

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

val items = viewModel.items.collectAsLazyPagingItems()
Кроме того, я заметил, что вызовы API подкачки продолжают попадать в серверную часть даже без прокрутки списка. Есть ли лучший или стабильный способ использовать StickyHeader с разбивкой на страницы 3?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ck-compose
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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