無關(guān)技術(shù)
凡一家之中,勤敬二字能守得幾分,未有不興,若全無一分,無有不敗.
本章概要
本章主要講了Android Studio添加依賴庫的方式,Fragment的生命周期,以及優(yōu)先使用支持庫Fragment的原因.
Fragment的生命周期
Fragment代表Activity來工作,所以它的狀態(tài)來代表Activity的狀態(tài),這種對應(yīng)很重要.
onAttach(Context),onCreate(Bundle),onCreateView()
全部在setContentView方法中調(diào)用
創(chuàng)建onActivityCreated(Bundle)-->onCreate
onStart() --> onStart
onResume() --> onResume
onPause() --> onPause
onStop() --> onStop
onDestroyView -->Activity 關(guān)閉
onDestroy(),onDetach() -->onDestroy
Activity托管Fragment的兩種方式
- 在布局中添加fragment
- 在代碼中添加Fragment
第一種方式簡單,但不夠靈活.
第二種是創(chuàng)建的fragment添加到fragment隊列中,然后交由FragmentManager來調(diào)度.
FragmentManager的使用
在Activity中
FragmentManager fm = getSupportFragmentManager();
FragmentManager可以根據(jù)布局id來獲取相應(yīng)的Fragment
`
Fragment fragment = fm.findFragmentById(R.id.fragment_container);
`
if(fragment==null){
fragment = new CrimeFragment();
fm.beginTransaction()
.add(R.id.fragment_container,fragment)
.commit();
}
`
創(chuàng)建一個Fragment事務(wù),執(zhí)行一個添加操作,然后提交該事務(wù).
為什么選擇支持庫中的fragment
原聲版本的Fragment內(nèi)置在系統(tǒng)中,如果應(yīng)用要支持各個系統(tǒng)版本,在不同設(shè)備上運行的Fragment可能會有不同的表現(xiàn).比如某個bug,在系統(tǒng)版本里已修正,而在4.0里卻沒有.而在支持庫中的Fragment,在發(fā)布時會打包在應(yīng)用里,使用支持庫中的fragment在不同的設(shè)備里運行,都會有相同的表現(xiàn).
另外,Google每年會多次更新支持庫,并借此更新新特性,修復(fù)bug.所以支持庫使用最新版本的就可以了.Android支持庫是無冕之王.