项目详细地址:ProjectX(方便统一管理)
状态帧布局,通常用于网络请求的四种状态,普通、载入、错误、空白。支持Drawable或者View来展示,也可以混搭。
minSdkVersion 4
dependencies {
⋯
compile 'am.widget:stateframelayout:1.0.3'
⋯
}
- 基本布局
<am.widget.stateframelayout.StateFrameLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:sflLoadingDrawable="@drawable/"
app:sflErrorDrawable="@drawable/"
app:sflEmptyDrawable="@drawable/"
app:sflState="loading">
⋯
</am.widget.stateframelayout.StateFrameLayout>
- 基本代码
lytState = (StateFrameLayout) findViewById(R.id.sfl_lyt_state);
lytState.setOnStateClickListener(listener);
lytState.setStateDrawables(mLoadingDrawable, mErrorDrawable, mEmptyDrawable);
lytState.setStateViews(mLoadingView, mErrorView, mEmptyView);
- 继承自帧布局
- 各种状态下都不拦截子View的点击事件,除Normal状态且isAlwaysDrawChild() == true时,内容子项不会被绘制及显示
- setAlwaysDrawChild(true)强制各种状态下都显示内容子项