我正在使用视图寻呼机。我已经为我的活动和视图分页器中的片段创建了共享视图模型。问题是当我在视图模型中设置MutableLiveData值时,活动中的观察者未得到调用。
我使用以下几行来初始化我的视图模型
正在活动:viewModel = ViewModelProviders.of(this).get(MyViewModel.class);
在片段中:viewModel = ViewModelProviders.of(getActivity())。get(MyViewModel.class);
在调试时,我发现活动的观察者在片段的onCreated上被删除。
据我所知,片段和活动都应具有相同的视图模型实例。
答案 0 :(得分:1)
我想出了解决方案。我正在活动和片段中创建可观察对象的新实例。导致片段中创建的实例被调用,而我在活动中观察的可观察对象的实例在片段创建时被替换了。
答案 1 :(得分:0)
我为每个片段使用不同的视图模型,为活动使用一个视图模型,因为每个片段的责任不同,应该分开,因此我将创建一个不同的视图模型。如果要使用相同的控件,则可以使用捆绑包将视图模型从活动传递到片段