Android 实现页面多状态管理

本文介绍了如何在Android应用中统一管理页面的多种状态,如数据正常、数据为空和网络异常时的显示。通过定义单独的空布局,创建BaseViewModel来处理状态码,并在BaseActivity和BaseFragment中注册观察者。利用DataBinding,子类可以通过抽象方法返回布局,基类则负责处理空状态的显示和刷新逻辑。这种方法减少了代码重复,提高了代码复用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们常常遇到这样的一种需求:当后台返回的数据正常时,展示数据,数据为空时,展示一种空状态布局,当网络异常时,展示“网络不见了”的布局,如果你的Activity只有一个页面,实现起来当然是极为简单的,伪代码如下:


<Root>

<!--空页面布局-->    
<include
        android:id="@+id/layout_empty"
        layout="@layout/layout_empty"
        android:visibility="gone"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

<LinearLayout>
//主布局

</LinearLayout>

</Root>

然后再Activity/Fragment中写:

  fun changePageState(){
        when(pageStatus){
            1->{
//             正常页面
            }
            2->{
//              显示空布局
            }
        }
    }

但现实是,我们一个App中包含了数十个甚至上百个页面,如果每个页面都这么写,当然不是不可以哈,就是有点繁琐,那我们能否只在基类中操作ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值