我有一个案例,我有 BottomNavigationView,其中片段被显示/隐藏而不是添加/替换,因此它们不会每次都经历生命周期。
片段1正在观察一个数据库表,片段2正在观察一个不同的。
我的目标是调用 onChanged片段2当 on 改变时片段1叫做。
一个愚蠢而幼稚的解决方案是设置观察者片段1 in 片段2并在其中调用另一个观察者:
mFragment1ViewModel1.getData().observe(this, new Observer<Fragment1Data>() {
@Override
public void onChanged(Fragment1Data fragment1Data) {
if(fragment1Data != null){
mFragmentViewModel2.getData().observe(SomeClass.this, new Observer<Fragment2Data>() {
@Override
public void onChanged(@Nullable Fragment2Data fragment2Data) {
// Do some stuff...
}
});
}
}
});
有人可以告诉我在这种情况下什么是一个好的解决方案以及上述解决方案的含义吗?
LiveData 1是告诉我什么时候它的onChanged方法被触发了,然后我想执行LiveData 2的onChanged
这实际上听起来就像是
Transformations.switchMap(liveData1, (x) -> { return liveData2; })
.observe(...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)