Android中LoadingLayout的简单使用

年后的第一周马上要结束了,小伙伴们是不是还处于每天都睡不够、睡不醒的状态。过年的时候,也没有好好写文章,趁着这段时间项目还不是很忙,赶紧补补。

简介

我们的项目里都会遇到几种页面,分别为加载中、无网络、无数据、出错四种情况,这四种情况是我们在项目中不可避免要出现的。有一个挺牛逼的哥们把这几种情况封装成库了,方便大家使用,不过现在这个库已经停止维护了。

原理比较简单,继承FrameLayout,在xml渲染完成后,加上加载中、无网络、无数据、出错四个页面,根据需要控制显示哪一层,花了些时间,开了很多方法出来,支持很多属性的设置,算是比较实用,源码里已对各个方法的作用都加了注释。

Github地址:https://github.com/weavey/LoadingLayoutDemo

简单使用

1.gradle引用:

implementation 'com.lai.weavey:loadinglayout:1.3.1'

2.使用说明

LoadingLayout支持全局配置,对所有使用到的地方都起效,需要在Application中配置,如下:

public class LoadingApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        LoadingLayout.getConfig()
                //.setLoadingPageLayout(R.layout.loading)
                //下面的设置项,组件都提供了默认值,不想更改的可以省略
                .setErrorText("出错啦~请稍后重试!")
                .setEmptyText("抱歉,暂无数据")
                .setNoNetworkText("无网络连接,请检查您的网络···")
                .setErrorImage(R.drawable.define_error)
                .setEmptyImage(R.drawable.define_empty)
                .setNoNetworkImage(R.drawable.ic_network_check)
                .setAllTipTextColor(R.color.colorGray)
                .setAllTipTextSize(18)
                .setReloadButtonText("点我重试哦")
                .setReloadButtonTextSize(18)
                .setReloadButtonTextColor(R.color.colorGray)
                .setReloadButtonWidthAndHeight(150,40);
    }
}

由于“加载中”的页面,可能每个App都不一样,因此,LoadingLayout支持自定义LoadingPage,如下:

LoadingLayout.getConfig().setLoadingPageLayout(R.layout.define_loading_page);

同时,为了适应个别界面的“特殊需求”,LoadingLayout也支持局部设置各种属性,仅对当前对象生效,不影响全局。如下:

LoadingLayout  loading = (LoadingLayout) findViewById(R.id.loading_layout);
loading.setLoadingPage(R.layout.define_loading_page)
       .setEmptyText("暂无报告数据")
       .setErrorText("")
       .setNoNetworkText("")
       .setErrorImage(R.drawable.define_error)
       .setErrorTextSize(16)
       .setReloadButtonText("点我重新加载哦"); //等等

给ReloadButton设置监听:

 loadingLayout.setOnReloadListener(new LoadingLayout.OnReloadListener() {
            @Override
            public void onReload(View v) {
                Toast.makeText(MainActivity.this,"重新载入",Toast.LENGTH_SHORT).show();
            }
        });

3.设置显示的页面

//载入成功
loadingLayout.setStatus(LoadingLayout.Success);
//加载失败
loadingLayout.setStatus(LoadingLayout.Error);
//正在加载
loadingLayout.setStatus(LoadingLayout.Loading);
//没有数据
loadingLayout.setStatus(LoadingLayout.Empty);
//没有网络
loadingLayout.setStatus(LoadingLayout.No_Network);

4.布局展示

<com.weavey.loading.lib.LoadingLayout
        android:id="@+id/loading_layout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        app:isFirstVisible="true">

        <TextView
            android:background="@color/colorPrimary"
            android:visibility="visible"
            android:gravity="center"
            android:textColor="@android:color/white"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="载入成功时界面的内容"/>

    </com.weavey.loading.lib.LoadingLayout>

总结

Loadinglayout这个库对于加载数据情况显示还是可以,而且方便快捷,不需要很多代码就可以实现。

下载

csdnhttps://download.csdn.net/download/wen_haha/10960047

github:https://github.com/kongkongdaren/LoadingLayoutDemo

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值