1 。創(chuàng)建BaseActivity。
之前遇到加載錯誤,空數據,網絡錯誤,和加載中,我都是在當前activity去隱藏和顯示對應的布局,導致重復很多代碼。so, 必須封裝。
首先 布局,? 采用ViewStub ?對更種布局的添加 ,因為有的時候,這幾種布局不一定都需要展示出來,所以就用viewstub來加載優(yōu)化。 先看圖。
base_toobar_view ?考慮到有的時候toolbar 并不能滿足我們,所以這里就可以添加自定義的toolbar,這樣就不影響整體的更改
base_contentView 主要就是為了加載需要顯示的布局。
ok下面就開始看BaseActivity。
getLayoutInflater().inflate(layoutResID, null, false); 和getLayoutInflater().inflate(getToobarId(), null, false); 來加載布局和toobar ,然后添加到BaseView中去。
2. 加載狀態(tài)布局和顯示。
我會把加載的布局放在SparseArray中去,當需要去顯示的時候就判斷集合中適合已經有了這個布局,若沒有再通過viewstub去加載。 最后再顯示出來。當然也少不了加載錯誤或者網絡錯誤的時候,需要重新加載,這里我直接寫個監(jiān)聽把方法拋出去。
?這個一樣放在BaseActivity。 這樣我們就在子Activity中直接調用方法。
子activity中引用就沒什么好說的了。
顯示布局
添加toobar
添加事件
看看動圖。。。 錄制屏幕了 裝不來gif 就不上傳了。 ?可以直接下載下來跑一下, github里面有debug包
github 地址 :https://github.com/CQBOBOZHU/BaseState?