导航组件和视图模型通信

时间:2018-12-31 10:46:56

标签: android android-fragments viewmodel android-architecture-navigation

我目前正在使用新的导航组件,并坚持一个活动原则,我正在使用viewmodel在片段之间进行通信,目前我有一个将View模型绑定到片段的场景(不需要它与活动相关联,这些数据必须在这个碎片生命周期内消失)我必须调用

getParentFragment().getParentFragment().getParentFragment()

在我看来,这似乎是错误的,但是我已经对其进行了测试,并且似乎可以正常工作,例如,记录哈希码会给我

D/EnvTabFrag: this fragment 62204288
D/EnvTabFrag: parent fragment 264756153

D/EnvTempFrag: this fragment 169781400
D/EnvTempFrag: parent fragment 66865393
D/EnvTempFrag: parents parent fragment 62204288
D/EnvTempFrag: parents parents parent fragment 264756153

有人可以告诉我我在这里做的事情是否可怕,也许我看不到或理解,我唯一能看到的潜在问题是空指针,这是一个好的方法还是我正在做的事情失踪?非常感谢

示例片段

locationPickerViewModel = ViewModelProviders.of(getParentFragment().getParentFragment().getParentFragment())
      .get(LocationPickerViewModel.class);

0 个答案:

没有答案