跳转至

使用

缺省页存在不同的状态, 可以称为状态页, 而StateLayout布局包裹的视图叫内容视图


创建缺省页

创建缺省页支持两种方式

<com.drake.statelayout.StateLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/state"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.statelayout.MainActivity">

    <TextView
        android:id="@+id/tv_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="加载成功" />

</com.drake.statelayout.StateLayout>

出于性能和问题考虑不推荐使用, 反复调用本方法会反复创建StateLayout导致发生问题

stateCreate() // 可在 Activity/Fragment/View 中使用


配置缺省页

指定状态页可以两种方式

state.apply {
    emptyLayout = R.layout.layout_empty // 配置空布局
    errorLayout = R.layout.layout_error // 配置错误布局
    loadingLayout = R.layout.layout_loading // 配置加载中布局
}
<com.drake.statelayout.StateLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/state"
    app:empty_layout="@layout/layout_empty"
    app:error_layout="@layout/layout_error"
    app:loading_layout="@layout/layout_loading"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.statelayout.MainActivity">

    <TextView
        android:id="@+id/tv_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="加载成功" />

</com.drake.statelayout.StateLayout>

显示缺省页

state.showLoading()
state.showEmpty()
state.showError()
state.showContent()
showXX()都有一个Any参数(标签), 可以传递对象到生命周期中, 进行定制化展示