Fragment 筆記

簡介

碎片林束、片段惹恃,F(xiàn)ragment 的翻譯可以讓人直觀的了解到它設(shè)計的思路和用法庇茫。
Android 3.0 以上恃锉。


from google develop
from google develop

生命周期及相關(guān)方法

  • onAttach(Activity)

Fragment和Activity建立關(guān)聯(lián)的時候調(diào)用搀菩。

  • onCreate(Bundle)

系統(tǒng)會在創(chuàng)建片段時調(diào)用此方法。您應(yīng)該在實現(xiàn)內(nèi)初始化您想在片段暫推仆校或停止后恢復(fù)時保留的必需片段組件肪跋。

  • onCreateView(LayoutInflater, ViewGroup, Bundle)

系統(tǒng)會在片段首次繪制其用戶界面時調(diào)用此方法。 要想為您的片段繪制 UI炼团,您從此方法中返回的 View 必須是片段布局的根視圖澎嚣。如果片段未提供 UI,您可以返回 null瘟芝。

  • onActivityCreated(Bundle)

當(dāng)Activity中的onCreate方法執(zhí)行完后調(diào)用易桃。

  • onPause()

系統(tǒng)將此方法作為用戶離開片段的第一個信號(但并不總是意味著此片段會被銷毀)進(jìn)行調(diào)用。 您通常應(yīng)該在此方法內(nèi)確認(rèn)在當(dāng)前用戶會話結(jié)束后仍然有效的任何更改(因為用戶可能不會返回)锌俱。

onDestroyView方法:Fragment中的布局被移除時調(diào)用晤郑。
onDetach方法:Fragment和Activity解除關(guān)聯(lián)的時候調(diào)用。

運(yùn)行一下程序贸宏,可以看到打印日志如下:

出自 [郭霖大神的 CSDN](http://blog.csdn.net/guolin_blog/article/details/8881711)

這時點(diǎn)擊一下home鍵造寝,打印日志如下:

出自 [郭霖大神的 CSDN](http://blog.csdn.net/guolin_blog/article/details/8881711)

如果你再重新進(jìn)入進(jìn)入程序,打印日志如下:

出自 [郭霖大神的 CSDN](http://blog.csdn.net/guolin_blog/article/details/8881711)

然后點(diǎn)擊back鍵退出程序吭练,打印日志如下:

出自 [郭霖大神的 CSDN](http://blog.csdn.net/guolin_blog/article/details/8881711)

Fragment 的創(chuàng)建

簡單的 Fragment 可以通過重寫 onCreateView() 方法來實現(xiàn)诫龙。

onCreateView(LayoutInflater inflater, ViewGroup container,BundlesavedInstanceState) 

一般使用該方法返回一個 View 對象提供給 Activity ,
所以在這里加載 xml 布局文件鲫咽,參數(shù)中签赃,
container :參數(shù)是布局將插入到的父ViewGroup(來自 Activity 的布局)
savedInstanceState :在恢復(fù) Frafment 時,提供上一片段實例相關(guān)數(shù)據(jù)的 Bundle
inflater : 可以用來獲取 xml 文件的控件分尸。

View view = inflater.inflate(R.layout.activity_news_two,container,false);
ListView newslistView=(ListView) view.findViewById(R.id.show_news);
//ListView newslistView = (ListView) getActivity().findViewById(R.id.show_news);
//getActivity() 獲取的對象可以用來獲取同一個 Activity 上不同的 Fragment 的控件锦聊。

inflate 方法的三個參數(shù):
xml 文件的ID;
將作為擴(kuò)展布局父項的 ViewGroup 對象箩绍。傳遞 container對系統(tǒng)向擴(kuò)展布局的根視圖(由其所屬的父視圖指定)應(yīng)用布局參數(shù)具有重要意義孔庭;
指示是否應(yīng)該在擴(kuò)展期間將擴(kuò)展布局附加至 ViewGroup(第二個參數(shù))的布爾值。

Activity 與 Fragment

  • 動態(tài)添加材蛛、刪除 Fragment

獲取 FragmentTransaction 對象

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.fragment_container,fragment);//添加到的地方
//fragmentTransaction.remove(fragment);
//fragmentTransaction.replace();
//fragmentTransaction.hide();
//fragmentTransaction.show();
fragmentTransaction.commit();
  • 兩者的通信
  • 事務(wù)棧

調(diào)用 addToBackStack()圆到,以將事務(wù)添加到片段事務(wù)返回棧。 該返回棧由 Activity 管理卑吭,允許用戶通過按返回按鈕返回上一片段狀態(tài)

transaction.add(R.id.fragment_container,fragment);
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);//

transaction.commit();

點(diǎn)擊返回的時候构资,上面的操作會被全部撤銷。
而且這些操作還可以通過setTransition()設(shè)置過度動畫陨簇。

setTransition

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吐绵,一起剝皮案震驚了整個濱河市迹淌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌己单,老刑警劉巖唉窃,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異纹笼,居然都是意外死亡纹份,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門廷痘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔓涧,“玉大人,你說我怎么就攤上這事笋额≡” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵兄猩,是天一觀的道長茉盏。 經(jīng)常有香客問我,道長枢冤,這世上最難降的妖魔是什么鸠姨? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮淹真,結(jié)果婚禮上讶迁,老公的妹妹穿的比我還像新娘。我一直安慰自己核蘸,他們只是感情好巍糯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著值纱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪坯汤。 梳的紋絲不亂的頭發(fā)上虐唠,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機(jī)與錄音惰聂,去河邊找鬼疆偿。 笑死,一個胖子當(dāng)著我的面吹牛搓幌,可吹牛的內(nèi)容都是我干的杆故。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼溉愁,長吁一口氣:“原來是場噩夢啊……” “哼处铛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤撤蟆,失蹤者是張志新(化名)和其女友劉穎奕塑,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體家肯,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡龄砰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了讨衣。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片换棚。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖反镇,靈堂內(nèi)的尸體忽然破棺而出固蚤,到底是詐尸還是另有隱情,我是刑警寧澤愿险,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布颇蜡,位于F島的核電站,受9級特大地震影響辆亏,放射性物質(zhì)發(fā)生泄漏风秤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一扮叨、第九天 我趴在偏房一處隱蔽的房頂上張望缤弦。 院中可真熱鬧,春花似錦彻磁、人聲如沸碍沐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽累提。三九已至,卻和暖如春磁浇,著一層夾襖步出監(jiān)牢的瞬間斋陪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工置吓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留无虚,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓衍锚,卻偏偏與公主長得像友题,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子戴质,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,144評論 25 707
  • Fragment 為何產(chǎn)生 同時適配手機(jī)和平板度宦、UI和邏輯的共享踢匣。 介紹 Fragment也會被加入回退棧中。 F...
    程慕楓閱讀 409評論 1 0
  • 片段 Fragment表示 Activity中的行為或用戶界面部分斗埂。您可以將多個片段組合在一個 Activity ...
    岳小川閱讀 809評論 0 3
  • 「大數(shù)據(jù)」這個概念從2012年開始被廣泛傳播符糊,尤其是近兩年,各大公司呛凶,不僅僅是互聯(lián)網(wǎng)公司男娄,都在談?wù)撍漾稀!复髷?shù)據(jù)」的...
    littlehei閱讀 1,540評論 8 24
  • 沒想到十字路口又?jǐn)[在了面前模闲,選哪一條,要想好崭捍,更需要自制力尸折,還有氣力。下一秒發(fā)生什么殷蛇,沒人知道实夹,我的未來是什么,我...
    澔澔閱讀 161評論 0 0