UI fragment與fragment 管理器

一、fragment與Activity

fragment 代表Activity在工作,它的狀態(tài)也反應(yīng)了Activity的狀態(tài)。fragment的生命周期方法是由Activity來調(diào)用的,而不是由操作系統(tǒng)來調(diào)用的。Activity由ActivityManager來管理;Activity中的fragmentManager負(fù)責(zé)調(diào)用隊(duì)列中的fragment的生命周期方法;

二、fragment的生命周期

啟動(dòng):onAttach()->onCreate()->onCreateView()->onActivityCreated()->onStart()->onResume()

關(guān)閉:onPause()->onStop()->onDestroyView()->onDestroy()->onDetach();

fragmentManager會(huì)使得fragment與Activity的狀態(tài)保持一致。

三、在Activity中使用fragment的二種方式

1)、添加fragment到Activity的布局中;

2)、在Activity有代碼中添加fragment;

第一種方式不夠靈活,在Activity中無法切換fragment;

第二種方式比羅復(fù)雜,也是唯一一種在運(yùn)行時(shí)可以控制fragment的方式(新增、刪除、代替fragment);

四、創(chuàng)建fragment

1)、定義fragment的布局文件;

2)、創(chuàng)建fragment類,并設(shè)置視圖布局;

@Override

publicView onCreateView(LayoutInflater inflater,@NullableViewGroup container,@NullableBundle savedInstanceState) {

View v=inflater.inflate(R.layout.fragment_crime,container,false);

returnv;

}

3)、通過代碼的方式,連接布局文件中生成的組件;

4)、用fragmentManager管理fragment中,并將它添加到Activity的視圖層中;

protected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

this.setContentView(R.layout.activity_crime);

FragmentManager fManager=this.getSupportFragmentManager();

Fragment fragment=fManager.findFragmentById(R.id.activity_crime);

if(fragment==null){

fragment=newCrimeFragment();

fManager.beginTransaction().add(R.id.activity_crime,fragment).commit();

}

}

五、強(qiáng)烈建議以后使用Fragment,不要問為什么,用就是了。

六、如果不考慮兼容性問題,就不必使用支持庫了。

直接繼承android.app.Activity;

直接繼承android.app.Fragment;不使用getSupportFragmentManager()方 ??法,而使用

getFragmentManager()方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容