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