云炬Android开发笔记 4单Activity界面架构设计与验证
1、4-2本應用沒有使用多個activity進行界面的展示,而是通過一個activity管理多個fragment來進行處理。
fragment里面有很多坑,推薦使用開源庫fragmentation。
2、引入fragmentation的依賴
?
3、因為這里的activity只是作為一個容器,所以我們叫它ProxyActivity,它繼承自SupportActivity
?
注:supportActivity默認使用的是supportv7包中的appcompatactivity,
4、創建basefragment
因為不希望之后的使用者甚至是我們自己去new出它的實例,所以,這里以抽象類來聲明它。這里會提供一個方法,讓子類傳入它的布局,可以是view,也可以是一個layout的id,既然是這樣的話,就把它的類型聲明為Object。這是寫框架的一個小技巧,這也是抽象類的一個比較靈活的方式。
?
5、butterknife是一個視圖注入的庫,如果在每個fragment中使用它會有些麻煩,所以,索性在basefragment中統一進行處理。這里是在library中使用它,在liabrary中使用它需要注意一些事項。
首先引入所需要的依賴
?
在library中使用需要額外地添加如下的東西
?
?
同時,在library的module里面加上gradle的插件
?
注:butterknife的作用是生成R2這樣的類,這個類是用來生成是否綁定我們所需要的view id,因為R,也就是Android的資源類,只能在module為application中被使用,butterknife又偏偏需要使用這樣的id資源,那怎么辦呢?大神開發了一個這樣的插件,通過R生成相應的R2資源文件,那么在綁定的時候,就可以使用R2這樣的方式來綁定資源id來訪問它。
6、通過綁定視圖后,強制子類實現方法onBindView()
7、在onDestroy()方法中解除綁定
?
?
8、創建一個權限檢查的中間層
?
9、創建以后真正使用的delegate,也是一個抽象類,并不打算以后讓人直接使用
?
10、因為這個類需要被其它類繼承,也不能直接使用,所以也使用abstract來修飾。
一般情況下用于容納frame layout的布局都是framelayout,這里使用v7包中的ContentFrameLayout,
加載資源布局。
因為是單activity,所以在退出activity的時候,整個應用也就退出了,所以這里做一些垃圾回收的操作,當然,這兩個方法不一定是一定執行的。
?
調用方法
?
?
創建資源id的類,這樣Androidstudio會為我們關聯好,而且絕對不會重復,
?
11、驗證框架是否可用
創建delegate類.onBindView()是對每個控件進行操作,這里先不做處理
?
調用方式
運行結果:
?
也就是說我們的整個項目是一個單activity的項目,根fragment也就是deletefragment,這樣整體機架就搭建完成了
總結
以上是生活随笔為你收集整理的云炬Android开发笔记 4单Activity界面架构设计与验证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeCun自曝使用C语言23年之久,2年
- 下一篇: 云炬Android开发笔记 7登陆注册