android 布局语句,Android自定义View之多状态布局

效果图~

22c2baffca17

效果图

对于大多数的App而言,多状态的页面都是必备的。一般加载数据的时候都会出现:加载中、加载成功、加载异常、无数据等等情况

一般在搭建项目的时候,就会先把这个页面写好,方便日后的开发。

分析

实现多状态布局View的时候,一般都是把里面的第一个子View当做内容View。 其他各种状态要显示的View则在

如图;

22c2baffca17

状态图

参数获取

通过传入CustomStateOptions对象控制状态,方便设置

public class CustomStateOptions implements Serializable {

@DrawableRes

private int imageRes;

private boolean isLoading;

private String message;

private String buttonText;

private View.OnClickListener buttonClickListener;

....

控制状态

控制状态和提供API的代码就不贴了,状态控制就是一堆if else语句,只要细心一些都不会出错的。

API的提供一般都是看自己项目的需求,没有必要一蹴而就,因为后期再根据需求添加也不是什么难事。

使用布局

xml

xmlns:app="http://schemas.android.com/apk/res-auto"

android:id="@+id/activity_main"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

app:stfAnimationEnabled="true">

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:src="@drawable/title"/>

android:gravity= "center"

android:layout_width="match_parent"

android:layout_height="50dp"

android:text="这里是视图" />

调用

aclululu = (StatusAclululuView) findViewById(R.id.activity_main);

默认提供页面

aclululu.showError(listener);

aclululu.showEmpty(listener);

aclululu.showLoading();

aclululu.showContent();

aclululu.showOffline(listener);

自定义页面

aclululu.showCustom(new CustomStateOptions().image(R.drawable.ic_launcher).buttonText("自定义").message("12345,beast").buttonClickListener(listener));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值