介紹:
Fragmentation控轿,主要用于現(xiàn)在App經(jīng)常需要實現(xiàn)的單Activity+多Fragment以及多Activity+多Fragment的形式架構(gòu)。同時最最重要的是,它幫助我們封裝了很多好用的方法,解決了一些官方Fragment庫中存在的一些Bug。
依賴:
api 'me.yokeyword:fragmentation:1.3.6'
api 'me.yokeyword:fragmentation-swipeback:1.2.7'
1 封裝BaseFragment:
自定義BaseFragment繼承自Fragmentation提供的SwipeBackFragment
將BaseFragment改為抽象類诡蜓,在具體業(yè)務中定義具體的頁面Fragment時就繼承這個類,實現(xiàn)它的抽象方法胰挑,傳入布局蔓罚,綁定視圖椿肩。
封裝兩個抽象方法,用于在自己實際的fragment中實現(xiàn)豺谈,
setLayout()用于設(shè)置fragment的layout郑象,
onBindView()用于在自己的fagment中綁定layout中的控件
BaseFragment做的事情:通過兩個抽象方法和子類進行交互,幫助子類完成createView的操作
在BaseFragment中茬末,我們通過setLayout方法得到fragment的layout厂榛,幫后面所有繼承BaseFragment的fragment inflate好我們的view。
2封裝ProxyActivity:(抽象類丽惭,用來綁定自定義的Fragement到界面上)繼承SupportActivity(注意看好是fragmentation的包不能導成v4的)击奶。 用于設(shè)置根fragment,設(shè)置activity的setContentView责掏。
給子類activity(實際使用的activit)封裝一個設(shè)置根fragment的方法:
注意一下容器的id正歼,這里需要我們單獨創(chuàng)建一個獨特的int出來,直接在里面?zhèn)?23是沒用的拷橘,至于為什么要去問谷歌,下面介紹該怎么做
然后as會幫我們自動生成一個獨一無二的int喜爷,我們就可以為container添加id了冗疮。
到這里封裝就完成了,現(xiàn)在我們需要使用就變得特別簡單了檩帐,
在這里术幔,我們只需要操作這兩個類就可以完成對整個項目頁面的操作了。