Сейчас я использую что-то вроде этого:
Код: Выделить всё
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 + "Joe" для простого добавления один элемент).
Подробнее здесь: https://stackoverflow.com/questions/688 ... tatelistof
Мобильная версия