LazyColumn に非常に奇妙な問題があります。ViewModel で menuList State を更新しています。ビューは再構成されますが、リストは再描画されません。
デバッガーを使用すると、LazyColumn に達してから停止します。つまり、子は新しいデータで再描画されません。理由はありますか?ありがとう!
私の見解:
val menuList = viewModel.menuData.observeAsState()
LazyColumn() { // <- Debugger stops here
items(menuList.value.sections.size) { i->
MenuItem(menuList.value[i])
}
}
MyViewModel:
private var menu: MenuUiState? = null
val menuData: MutableLiveData<MenuUiState> by lazy {
MutableLiveData<MenuUiState>()
}
// ...
menu?.sections?.forEach {
//update menu properties here
}
menuData.value = menu?.copy()