封装BaseActivity,一行代码实现加载状态的更改
2017-04-27 本文已影响0人
清汤白面
1 。创建BaseActivity。
之前遇到加载错误,空数据,网络错误,和加载中,我都是在当前activity去隐藏和显示对应的布局,导致重复很多代码。so, 必须封装。
首先 布局, 采用ViewStub 对更种布局的添加 ,因为有的时候,这几种布局不一定都需要展示出来,所以就用viewstub来加载优化。 先看图。
base_toobar_view 考虑到有的时候toolbar 并不能满足我们,所以这里就可以添加自定义的toolbar,这样就不影响整体的更改base_contentView 主要就是为了加载需要显示的布局。
ok下面就开始看BaseActivity。
getLayoutInflater().inflate(layoutResID, null, false); 和getLayoutInflater().inflate(getToobarId(), null, false); 来加载布局和toobar ,然后添加到BaseView中去。
2. 加载状态布局和显示。
我会把加载的布局放在SparseArray中去,当需要去显示的时候就判断集合中适合已经有了这个布局,若没有再通过viewstub去加载。 最后再显示出来。当然也少不了加载错误或者网络错误的时候,需要重新加载,这里我直接写个监听把方法抛出去。 这个一样放在BaseActivity。 这样我们就在子Activity中直接调用方法。子activity中引用就没什么好说的了。
显示布局 添加toobar 添加事件看看动图。。。 录制屏幕了 装不来gif 就不上传了。 可以直接下载下来跑一下, github里面有debug包
github 地址 :https://github.com/CQBOBOZHU/BaseState