Как создается внутреннее состояние прокрутки обновлений? ⇐ Android
Как создается внутреннее состояние прокрутки обновлений?
Как следует из документов Compose, чтобы сделать компонуемый элемент без состояния, мы используем подъем состояния, заменяя переменную состояния двумя параметрами: значением и onValueChananged.
Примерно так:
MyText(text: String, onTextChanged: (String) -> Unit Однако в некоторых случаях составная функция получает значение без поднятия состояния, например, когда мы заинтересованы в чтении ScrollableState или LazyListState, мы передаем запомненное состояние к составной функции:
val lazyListState = RememberLazyListState() LazyRow(state = lazyListState) {...} С помощью приведенного выше кода предположим, что lazyListState косвенно используется в составном MyItem:
items(items = myItems, ключ = { элемент -> item.id }) { элемент -> val someDerivedState, помните { производноеStateOf { someComputationsWithLazyListState(lazyListState) } } MyItem(item = item, deferredDerivedState = {someDerivedState}) } Вот мой вопрос: как Compose поддерживает внутреннее обновление lazyListState, не передавая его через что-то вроде oScrollstateChange?
Обратите внимание: я не спрашиваю, как использовать LazyListState. Вопрос в том, как это работает.
Как следует из документов Compose, чтобы сделать компонуемый элемент без состояния, мы используем подъем состояния, заменяя переменную состояния двумя параметрами: значением и onValueChananged.
Примерно так:
MyText(text: String, onTextChanged: (String) -> Unit Однако в некоторых случаях составная функция получает значение без поднятия состояния, например, когда мы заинтересованы в чтении ScrollableState или LazyListState, мы передаем запомненное состояние к составной функции:
val lazyListState = RememberLazyListState() LazyRow(state = lazyListState) {...} С помощью приведенного выше кода предположим, что lazyListState косвенно используется в составном MyItem:
items(items = myItems, ключ = { элемент -> item.id }) { элемент -> val someDerivedState, помните { производноеStateOf { someComputationsWithLazyListState(lazyListState) } } MyItem(item = item, deferredDerivedState = {someDerivedState}) } Вот мой вопрос: как Compose поддерживает внутреннее обновление lazyListState, не передавая его через что-то вроде oScrollstateChange?
Обратите внимание: я не спрашиваю, как использовать LazyListState. Вопрос в том, как это работает.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение