android切换画面,android多状态页面切换

3a939269e252

logo.png

StatusView 介绍

可以帮助android开发者减轻多种状态页面切换的代码量,如NoNetwork、Error、Empty等页面轻松切换,xml中自定义视图内容。

自动保存view的状态,不会因为切换页面而丢失状态。

引入

Gradle

allprojects {

repositories {

...

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

}

}

implementation 'com.github.Enlogty:StatusView:1.0.1'

使用

xml中使用,默认显示ContentView里面的视图

StatusRelativeLayout可以根据需求更改为StatusFrameLayout或者StatusLinearLayout

android:id="@+id/status_view"

android:layout_width="match_parent"

android:layout_height="match_parent"

app:rContentView="@layout/status_content"

app:rEmptyView="@layout/status_empty"

app:rErrorView="@layout/status_error"

app:rExtendView="@layout/status_extend"

app:rLoadingView="@layout/status_loading"

app:rNoNetworkView="@layout/status_no_network" />

or

//当StatusRelativeLayout布局里面同时存在child view和 app:rContentView="@layout/status_content"时,默认显示rContentView

的内容,如果只存在child view则显示child view。

//推荐,此种形式布局层次更少

android:id="@+id/status_view"

android:layout_width="match_parent"

android:layout_height="match_parent"

app:rEmptyView="@layout/status_empty"

app:rErrorView="@layout/status_error"

app:rExtendView="@layout/status_extend"

app:rLoadingView="@layout/status_loading"

app:rNoNetworkView="@layout/status_no_network">

android:id="@+id/tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Hello World"/>

android:layout_below="@+id/tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:text="OK"/>

代码中切换布局

//声明

private StatusView statusView;

//使用,单一调用直接切换视图

statusView.showContent();//主视图

statusView.showEmptyContent();//空视图

statusView.showErrorContent();//错误视图

statusView.showNoNetworkContent();//无网络视图

statusView.showLoadingContent();//加载中视图

statusView.showExtendContent();//扩展视图

任意视图chlid view的点击监听

//声明

private StatusView statusView;

//使用,根据xml中对应view的id,进行点击事件的监听

statusView.setOnItemClickListener(R.id.tv, new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(MainActivity.this,"Hello World !!!",Toast.LENGTH_SHORT).show();

}

});

说明

自定义属性说明

使用StatusRelativeLayout时,自定义属性对应r开头

rContentView 主视图

rEmptyView 空视图

rErrorView 错误视图

rExtendView 扩展视图

rLoadingView 加载中视图

rNoNetworkView 无网络视图

or

使用StatusFrameLayout时,自定义属性对应f开头

fContentView 主视图

fEmptyView 空视图

fErrorView 错误视图

fExtendView 扩展视图

fLoadingView 加载中视图

fNoNetworkView 无网络视图

or

使用StatusLinearLayout时,自定义属性对应l开头

lContentView 主视图

lEmptyView 空视图

lErrorView 错误视图

lExtendView 扩展视图

lLoadingView 加载中视图

lNoNetworkView 无网络视图

其它常用方法、常量

//状态码

StatusView.STATUS_CONTENT 主视图

StatusView.STATUS_LOADING 加载中视图

StatusView.STATUS_EMPTY 空视图

StatusView.STATUS_ERROR 错误视图

StatusView.STATUS_NO_NETWORK 无网络视图

StatusView.STATUS_EXTEND 扩展视图

//方法

//返回当前的试图状态

int viewStatus = statusView.getViewStatus();

效果

3a939269e252

effect.gif

GitHub

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值