Android Compose не будет обновлять состояние из изменяемого состоянияAndroid

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

Сообщение Anonymous »

В настоящее время я пытаюсь использовать представление Compose вне MVVM и ViewModels, но у меня возникают серьезные проблемы с обновлениями состояния.
В настоящее время у меня правильно отображается представление Compose, и оно ссылается на mutableState, который я создал правильно, но не могу обновить состояние.
Это мой код создания и состояния. Функция составного содержимого вызывается из действия setContent{}

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

private var userState = mutableStateOf[*]>(listOf())
private var loadingState = mutableStateOf(LoadingState.SUCCESS)

@Composable
fun Content() {
TemplateProjectTheme {
Scaffold(modifier = Modifier.fillMaxSize(),
topBar = {...}) { innerPadding ->
when (loadingState.value) {
LoadingState.SUCCESS -> {
.padding(innerPadding)
.fillMaxSize()) {
GithubUsersList(
users = userState.value,
onItemClick = listUserClickRelay::send,
modifier = Modifier.fillMaxSize()
)
}
}

LoadingState.EMPTY -> {
//more compose code
}
Я обновляю состояние пользователя с помощью отдельной функции, которая обновляет изменяемое состояние.

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

fun updateUsers(users: List) {
this.userState.value = users
}
Код компоновки правильно считывает исходное состояние, но любые обновления, установленные в изменяемое состояние, не обновляются и не вызывают перекомпоновку. В отладчике я вижу обновление состояния, но рекомпозиции не происходит. Эта проблема возникает как со списком пользователей, так и с состоянием загрузки.
Это сводит меня с ума уже два дня.
Я пробовал несколько вещей, которые все не удалось.
  • Использование делегатов с ключевым словом by и импорт функций расширения компоновки setValue.
  • Перемещение mutableStateOf в запомнить функцию в блоке создания


Подробнее здесь: https://stackoverflow.com/questions/791 ... able-state

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