Сейчас я использую что-то вроде этого:
Код: Выделить всё
val names = remember { mutableStateListOf() }
names.add("Bill")
names.remove("Bill")
Код: Выделить всё
val names = rememberSaveable { mutableStateListOf() }
names.add("Bill")
names.remove("Bill")
androidx.compose.runtime.snapshots.SnapshotStateList не может быть сохранен
с использованием текущего SaveableStateRegistry. Реализация по умолчанию
поддерживает только типы, которые можно хранить внутри Bundle. Пожалуйста,
рассмотрите возможность реализации собственного Saver для этого класса и передайте его в
rememberSaveable().
Это означает, что SnapshotStateList< /code> (результат mutableStateListOf) невозможно сохранить.
Пока я могу придумать несколько способов обойти эту проблему:
- Фактическая реализация сохранения для SnapshotStateList.
- Использование чего-то вроде val nameState = RememberSaveable { mutableStateOf(listOf()) .
Это действительно работает безупречно, однако обновление списка требует установки значения, что является медленным и неудобным (например, nameState.value = nameState.value + «Джо» за добавление всего лишь одного элемента).
Подробнее здесь: https://stackoverflow.com/questions/688 ... tatelistof
Мобильная версия