To get a Git project into your build:
Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
maven { url 'https://www.jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
implementation 'com.github.MarkRaoAndroid:EasyStateView: latest-release'
}
<com.rzj.view.EasyStateView
android:id="@+id/state_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:esv_emptyView="@layout/state_empty"
app:esv_errorDataView="@layout/state_data_error"
app:esv_errorNetView="@layout/state_net_error"
app:esv_loadingView="@layout/state_loading"
app:esv_use_anim="true"
app:esv_viewState="loading">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="内容" />
</com.rzj.view.EasyStateView>
可以通过自定义属性来设置你的布局,中间放你的主题内容 View
还可以在代码里添加自定义的布局,这里控件内本身自定义了五种布局,通过 esv_viewState 来设置第一个显示在用户的 View
1,内容 View
2,加载 View
3,数据异常( 数据异常指原本应该是有数据,但是服务器返回了错误的、不符合格式的数据 ) View
4,网络异常 View
5,数据为空 View
也可以监听 View 状态的变化
public class MainActivity extends AppCompatActivity implements EasyStateView.StateViewListener {
private com.rzj.view.EasyStateView mStateView;
private static final int YFH = 1;
private static final int DLRB = 2;
private int mStateId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
}
private void initViews() {
mStateView = findViewById(R.id.state_view);
// 获取当前显示的 view 状态
mStateId = mStateView.getCurrentState();
// 代码动态添加 View , 注意 tag 值必须大于 0
mStateView.addUserView(YFH, R.layout.state_yfh);
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.state_dlrb, mStateView, false);
mStateView.addUserView(DLRB, view);
// 监听 StateView 状态变化
mStateView.setStateChangedListener(this);
}
@Override
public void onStateChanged(int state) {
Toast.makeText(MainActivity.this, String.valueOf(state), Toast.LENGTH_LONG).show();
}
}