Android 之 StateView(状态页面切换)

时间:2018-03-14 14:42:29来源:杰瑞文章网点击:作文字数:200字
StateView 一个轻量级的控件, 继承自 View, 吸收了 ViewStub 的一些特性, 初始状态下是不可见的, 不占布局位置, 占用内存少。 当进行操作显示空/重试/加载视图后, 该视图才会被添加到布局中。 使用方法 1. //在 app 下的 build.gradle 中添加以下依赖 compile 'com.github.nukc.stateview:library:1.5.4' // animator providers compile 'com.github.nukc.stateview:animations:1.0.1' 2. //将 StateView 控件添加到 xml 文件中 3. //在 Activity中实例化StateView private StateView mStateView; mStateView = (StateView) findViewById(R.id.stateView); 注入到 Activity mStateView = StateView.inject(Activity activity); 注入到 ViewGroup mStateView = StateView.inject(ViewGroup parent); mStateView = StateView.inject(ViewGroup parent, boolean hasActionBar); // 如果 View 不是 ViewGroup,则会注入到 View 的 parent 中 mStateView = StateView.inject(View view); mStateView = StateView.inject(View view, boolean hasActionBar); 包裹指定的 View,这个会增加层次 mStateView = StateView.wrap(View view); 4. //切换页面 @Override public void onClick(View v) { switch (v.getId()){ case R.id.btnInEmpty: //切换为 无数据 页面 mStateView.showEmpty(); break; case R.id.btnInRetry: //切换为 刷新 页面 mStateView.showRetry(); break; case R.id.btnRemove: //切换为 内容 页面 mStateView.showContent(); break; case R.id.btnRemove: //切换为 加载 页面 mStateView.showLoading(); break; } } 显示空视图: mStateView.showEmpty(); 显示加载视图: mStateView.showLoading(); 显示重试视图: mStateView.showRetry(); 显示内容: mStateView.showContent(); 5. //设置点击事件 mStateView.setOnRetryClickListener(new StateView.OnRetryClickListener() { @Override public void onRetryClick() { //do something, no need to call showLoading() //不需要调用showLoading()方法, StateView自会调用 } }); 设置自定义视图: 全局设置办法:在自己项目的layout下新建, 名字跟StateView默认layout一样即可(也不用代码设置). 默认layout的名字:base_empty/base_retry/base_loading. 单页面设置:layout名字不一样, 然后再代码设置. setEmptyResource(@LayoutRes int emptyResource) setRetryResource(@LayoutRes int retryResource) setLoadingResource(@LayoutRes int loadingResource) 动画切换 // 默认 provider 是 null,即默认不提供动画切换 // 如果需要,设置一个就可以了 setAnimatorProvider(AnimatorProvider provider) 渐变缩放: FadeScaleAnimatorProvider 卡片翻转: FlipAnimatorProvider 左右滑动: SlideAnimatorProvider 兼容沉浸式全屏模式 /** * @return statusBarHeight 对于是沉浸式全屏模式下的,可以使用此方法补上 statusBar 的 height,从而不覆盖 toolbar */ private int getStatusBarHeight() { int height = 0; int resId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resId > 0) { height = getResources().getDimensionPixelSize(resId); } return height; } ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) mStateView.getLayoutParams(); layoutParams.topMargin += getStatusBarHeight() 参考文献 源码:https://github.com/nukc/StateView
作文投稿

Android 之 StateView(状态页面切换)一文由杰瑞文章网免费提供,本站为公益性作文网站,此作文为网上收集或网友提供,版权归原作者所有,如果侵犯了您的权益,请及时与我们联系,我们会立即删除!

杰瑞文章网友情提示:请不要直接抄作文用来交作业。你可以学习、借鉴、期待你写出更好的作文。

Android 之 StateView(状态页面切换)相关的作文:

    无相关信息

说说你对这篇作文的看法吧