Думаю, мне здесь не хватает чего-то очевидного, но ... Я храню данные в uiModel
в классе DiaryViewModel, и, поскольку я использую компоненты архитектуры, я ожидаю, что данные будут сохранены при повороте экрана - но это не так. Я не понимаю почему.
Вот урезанный фрагмент
class DiaryFragment: Fragment() {
private lateinit var viewModel: DiaryViewModel
override onCreateView(...) {
viewModel = ViewModelProviders.of(this).get(DiaryViewModel::class.java)
viewModel.getModel().observe(this, Observer<DiaryUIModel> { uiModel ->
render(uiModel)
})
}
}
И соответствующая модель просмотра.
class DiaryViewModel: ViewModel() {
private var uiModel: MutableLiveData<DiaryUIModel>? = null
fun getModel(): LiveData<DiaryUIModel> {
if (uiModel == null) {
uiModel = MutableLiveData<DiaryUIModel>()
uiModel?.value = DiaryUIModel()
}
return uiModel as MutableLiveData<DiaryUIModel>
}
}
Может ли кто-нибудь увидеть, чего не хватает в этом простом примере? Прямо сейчас для uiModel
установлено значение null
при повороте экрана.
Lifecycles
(хотя не уверен, что это может быть причиной проблемы, которую вы видите) - person John O'Reilly   schedule 08.01.2018activity
вViewModelProviders.of()
, но вам также необходимо проверить, что это имеет смысл для вашего конкретного варианта использования (пример это показано в developer.android.com/topic/libraries/architecture. /) - person John O'Reilly   schedule 08.01.2018