android – MVVM notify查看有关加载状态的信息

前端之家收集整理的这篇文章主要介绍了android – MVVM notify查看有关加载状态的信息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我现在正在使用Google的LiveData,他们建议使用MVVM模式设计.对于我的一些请求,我使用Rx Java2,并在SubscribeWith(…)中侦听响应.

例如,当我按下按钮将一些数据发送到远程数据源时,我正在显示一些加载动画并希望将其隐藏在onComplete()事件上(在subscribeWith(…)内).问题是我无法访问ModelView中的View.怎么可能让View知道加载动画应该被隐藏?

我目前的想法是在viewmodel中创建接口并在View中实现它.但它破坏了View和viewmodel分离的概念.

解决方法

那么你可以使用liveData:D

viewmodel类中,您可以创建这样的实时数据对象

MutableLiveData<Boolean> isLoading = new MutableLiveData<>();

例如,创建一个名为downloadFinished的函数,并在onComplete中调用
为您的远程代码

private void downloadFinished() {
        isLoading.setValue(true);
    }

在使用视图模型的活动中,您可以观察加载的值并隐藏进度或者您想要的内容

Testviewmodel viewmodel = viewmodelProviders.of(this).get(Testviewmodel.class);
        viewmodel.isLoading.observe(this,new Observer<Boolean>() {
            @Override
            public void onChanged(@Nullable Boolean isLoading) {
                if (isLoading != null) {
                    if (isLoading) {
                        // hide your progress bar
                    }
                }
            }
        });
原文链接:https://www.f2er.com/android/310376.html

猜你在找的Android相关文章