Как мне забыть или сбросить Lazyliststate в JetPack Compose?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как мне забыть или сбросить Lazyliststate в JetPack Compose?

Сообщение Anonymous »

У меня есть проблема, которую я не могу решить - состояние списка забываний. У меня есть Single Lazycolumn, в котором есть некоторые предметы, и у меня также есть список категорий, которые пользователи могут выбирать, например. Все, любимые, подписанные и т. Д. < /p>
Когда я нахожусь в категории «все» и прокрутка на некоторое время, затем выберите «Любимый», я буду в том же месте, где я был при прокрутке с «всем», но я хочу быть в списке фаворитов. выбран. Я пытался с Coroutinescope и без него, но ничего не работает. < /P>
Я использую библиотеку Paging3. Или сбросить это как-то? val coroutineScope = rememberCoroutineScope()
val lazyListState = rememberLazyListState()

LaunchedEffect(pagedList.itemSnapshotList.items) {
if (pagedList.itemCount > 0) {
lazyListState.scrollToItem(0)
scrollBehavior.scrollOffset = 1f
}
}

Минимальный воспроизводимый пример, вы можете сыграть вокруг прокрутки всех/подписанных и изменяющихся на/от всех/подписанных
enum class Category { All, Favourite, Subscribed }

@Composable
fun CategoryListSample(
modifier: Modifier = Modifier
) {
// currently selected category
var category by remember { mutableStateOf(Category.All) }

// list scroll state (issue: it is preserved across categories)
val listState = rememberLazyListState()

// data for each category
val items = when (category) {
Category.All -> List(50) { "All $it" }
Category.Favourite -> List(10) { "Fav $it" }
Category.Subscribed -> List(20) { "Sub $it" }
}

Column(
modifier = modifier,
horizontalAlignment = Alignment.CenterHorizontally
) {
Row {
Category.entries.forEach {
TextButton(onClick = { category = it }) {
Text(it.name)
}
}
}
LazyColumn(state = listState) {
items(items) { item ->
Text(item, modifier = Modifier
.fillMaxWidth()
.padding(16.dp))
}
}
}
}



Подробнее здесь: https://stackoverflow.com/questions/797 ... ck-compose
Ответить

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

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

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

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

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