多种状态的自定义View

[复制链接]
来自: MrlLee 分类: Android精品源码 上传时间: 2016-7-12 11:25:29
Tag:Failed commit latest update style

项目介绍:

Permalink
Failed to load latest commit information.
apk first commit Jan 17, 2016
app code style Apr 21, 2016
gradle/wrapper first commit Jan 17, 2016
multiple-status-view code style Apr 21, 2016
screenshots add screenshots Jan 18, 2016
.gitignore first commit Jan 17, 2016
README.md update README.md Apr 21, 2016
build.gradle code style Apr 21, 2016
gradle.properties first commit Jan 17, 2016
gradlew first commit Jan 17, 2016
gradlew.bat first commit Jan 17, 2016
settings.gradle first commit Jan 17, 2016


一个支持多种状态的自定义View,可以方便的切换到:加载中视图、错误视图、空数据视图、网络异常视图、内容视图。


使用



dependencies {
compile 'com.classic.common:multiple-status-view:1.2'
}


感谢





示例



<com.classic.common.MultipleStatusView
android:id="@+id/main_multiplestatusview"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:loadingView="@layout/custom_loading_view"
app:emptyView="@layout/custom_empty_view"
app:errorView="@layout/custom_error_view"
app:noNetworkView="@layout/custom_no_network_view"
app:contentView="@layout/main_content"
/>


MultipleStatusView multipleStatusView = (MultipleStatusView) findViewById(R.id.main_multiplestatusview);
//显示加载中视图
multipleStatusView.showLoading();
//显示空视图
multipleStatusView.showEmpty();
//显示错误视图
multipleStatusView.showError();
//显示无网络视图
multipleStatusView.showNoNetwork();
//显示内容视图
multipleStatusView.showContent();
//设置重试视图点击事件
multipleStatusView.setOnRetryClickListener(onRetryClickListener);

/**
* 获取当前view的状态
* MultipleStatusView.STATUS_LOADING //当前为加载中视图
* MultipleStatusView.STATUS_EMPTY //当前为空视图
* MultipleStatusView.STATUS_ERROR //当前为错误视图
* MultipleStatusView.STATUS_NO_NETWORK//当前为无网络视图
* MultipleStatusView.STATUS_CONTENT //当前为内容视图
*/
int viewStatus = multipleStatusView.getViewStatus();


MultipleStatusView继承自RelativeLayout,所以内容视图也可以直接写在MultipleStatusView内部



<com.classic.common.MultipleStatusView
android:id="@+id/main_multiplestatusview"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:loadingView="@layout/custom_loading_view"
app:emptyView="@layout/custom_empty_view"
app:errorView="@layout/custom_error_view"
app:noNetworkView="@layout/custom_no_network_view"
>

<TextView
android:id="@+id/content_view"
android:text="内容视图"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="20sp"
/>

com.classic.common.MultipleStatusView>


注意事项




  • 加载中视图的id必须为:loading_view

  • 空视图的id必须为:empty_view

  • 错误视图的id必须为:error_view

  • 无网络视图的id必须为:no_network_view

  • 内容视图的id必须为:content_view



<RelativeLayout
android:id="@+id/loading_view"
android:layout_width="match_parent"
android:layout_height="match_parent">

...

RelativeLayout>


如果需要点击某个view进行重试,可以设置如下id:




  • 空视图内对应的view id:empty_retry_view

  • 错误视图内对应的view id:error_retry_view

  • 无网络视图内对应的view id:no_network_retry_view



<RelativeLayout
android:id="@+id/error_view"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:id="@+id/error_retry_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:src="@mipmap/ic_error"
/>

<TextView
style="@style/MultipleStatusView.Content"
android:layout_below="@id/error_retry_view"
android:text="@string/error_view_hint"/>
RelativeLayout>


详细使用见demo示例。

相关源码推荐:

我来说两句
所有评论(244)
liuwen520134 2016-7-12 11:28:21
学习学习!
回复
深思 2016-7-12 11:54:56
帮帮顶顶!!
回复
Vension 2016-7-12 12:06:30
很给力,安卓巴士有你更精彩!
回复
tylz 2016-7-12 12:48:33
mark,收藏了
回复
Frank_z 2016-7-12 13:24:01
mark,收藏了
回复
孙林 2016-7-12 13:40:46
淡定,淡定,淡定……
回复
aliouswang 2016-7-12 13:59:18
mark,收藏了
回复
提取码:  下载次数:166 状态:已购或VIP 售价:10(原价:10)金钱 下载权限:初级码农 
7065 1 166
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿
帖子代码编辑/版权问题
QQ:435399051,1294855032
如何获得代码达人称号?
如何成为签约作者?
领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )