【发布时间】:2020-06-13 08:07:39
【问题描述】:
我正在实现 viewModel 并在 viewModel 和片段之间进行通信,我正在这样做:
public class SplashViewModel extends AndroidViewModel {
private LiveData<Boolean> actions;
public SplashViewModel(@NonNull Application application) {
super(application);
actions= new MutableLiveData<>();
}
public void aViewModelMethod() {
//doing some stuff
if (stuff == X){
//I need to hide a view for exemple, I'm doing this
actions.postValue(true);
}
}
现在在我的 Fragment 中,我有一个 observable,当达到actions.postValue(true) 时触发
viewModel.actions.observe(getViewLifecycleOwner(), new Observer<Boolean>() {
@Override
public void onChanged(Boolean action) {
if (action){
databinding.myView.setVisibility(View.VISIBLE);
}
}
});
这很好,但如果我有很多沟通,我需要每次都实现一个新变量,并观察它? 4 或 5 的时候没关系,但是当他们是数百人时我应该怎么做?
我尝试用一个带有开关和动作列表的整数来更改布尔值,但是当 viewModel 初始化时,可能会触发几个 postValue,当我创建 observable 时,我只得到最后一个,这使得感觉。
【问题讨论】:
标签: android viewmodel android-architecture-components android-viewmodel android-mvvm