状态页面StateLayout:包含加载页面,空页面,错误页面,网络错误页面。内含各种状态默认页面,也支持自定义。

StateLayout

API19+

状态View,包含加载页面,空页面,错误页面,网络错误页面。内含状态默认页面,也支持自定义状态页面

StateLayout继承自FrameLayout
Github

预览图

在这里插入图片描述

引入

Step 1. 在项目的build.gradle中添加

allprojects {
    repositories {
	...
	maven { url 'https://jitpack.io' }
	}
}

Step 2. 在app的build.gradle中添加

dependencies {
    implementation 'com.github.LZKDreamer:StateLayout:1.0'
}

使用

  • XML
<com.lzk.statelayout.view.StateLayout
        android:id="@+id/main_state_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
        <!--添加真正要显示的内容,如一个RecyclerView-->
    </com.lzk.statelayout.view.StateLayout>
  • XML自定义属性
自定义属性说明
app:state_error_layout="@layout/layout_custom_error"自定义错误布局文件
app:state_loading_layout="@layout/layout_custom_error"自定义加载布局文件
app:state_empty_layout="@layout/layout_custom_error"自定义空布局文件
app:state_net_error_layout="@layout/layout_custom_error"自定义网络错误布局文件
app:state_loading_bar_color="@color/colorAccent"LoadingBar的颜色
app:state_loading_tip="@string/state_loading"加载提示文字(例如:正在加载)
app:state_error_tip="@string/state_error"错误提示文字(例如:加载失败)
app:state_empty_tip="@string/state_empty"空提示文字(例如:这里什么都没有)
app:state_net_error_tip="@string/state_empty"网络错误提示文字(例如:网络未连接,请检查网络)
app:state_retry_text="@string/click_screen_and_retry"重试按钮提示文字(例如:点击屏幕重试)
app:state_retry_drawable="@drawable/bg_retry"重试按钮的drawable文件,添加圆角什么的
app:state_retry_text_color="@color/colorWhite"重试文字颜色
app:state_retry_text_size=“14sp”重试文字大小(sp)
app:state_empty_img="@drawable/ic_default"空页面图片
app:state_error_img="@drawable/ic_default"错误页面图片
app:state_net_error_img="@drawable/ic_default"网络错误页面图片
app:state_tip_text_color="@color/colorPrimary"提示文字的颜色
app:state_tip_text_size=“16sp”提示文字的大小(sp)
  • 回调

    • 如果空页面、错误页面、网络错误页面的重试事件是一样的则使用OnReloadListener
    • 如果空页面、错误页面、网络错误页面的重试事件需要分别处理则使用OnStateListener
public interface OnReloadListener{
        void onStateReload();
    }
public interface OnStateListener{
        void onStateEmpty();
        void onStateError();
        void onStateNetError();
    }
  • java
        mStateLayout = findViewById(R.id.main_state_layout);
        //设置监听回调
        //mStateLayout.setOnReloadListener(this);
        mStateLayout.setOnStateListener(this);
        
        //方法
        注意:若showXXX(String tip)不传入提示文字则显示默认的文字
        mStateLayout.showLoading();//显示加载布局
        mStateLayout.showLoading(String tip);
        mStateLayout.showEmpty();//显示空布局
        mStateLayout.showEmpty(String tip);
        mStateLayout.showError();//显示错误布局
        mStateLayout.showError(String tip);
        mStateLayout.showNetError();//显示网络错误布局
        mStateLayout.showNetError(String tip); 
        //显示你的内容布局
        mStateLayout.showPageContent();
        
  • 其它方法
 /**
     * 设置错误提示图片
     * @param drawable
     */
    public void setErrorImage(Drawable drawable);

    /**
     * 设置网络错误图片
     * @param drawable
     */
    public void setNetErrorImage(Drawable drawable)

    /**
     * 设置空页面提示图片
     * @param drawable
     */
    public void setEmptyImage(Drawable drawable)

    /**
     * 获取加载布局的实例
     * @return
     */
    public View getLoadingView()

    /**
     * 获取空布局的实例
     * @return
     */
    public View getEmptyView()

    /**
     * 获取错误布局的实例
     * @return
     */
    public View getErrorView()

    /**
     * 获取网络错误布局的实例
     * @return
     */
    public View getNetErrorView()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值