最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Android App開發(fā)中Fragment的創(chuàng)建與生命周期

 更新時間:2016年02月27日 09:35:46   作者:時之沙  
這篇文章主要介紹了Android App開發(fā)中Fragment的創(chuàng)建與生命周期,文中詳細(xì)地介紹了Fragment的概念以及一些常用的生命周期控制方法,需要的朋友可以參考下

Fragment是activity的界面中的一部分或一種行為。你可以把多個Fragment們組合到一個activity中來創(chuàng)建一個多面界面并且你可以在多個activity中重用一個Fragment。你可以把Fragment認(rèn)為模塊化的一段activity,它具有自己的生命周期,接收它自己的事件,并可以在activity運行時被添加或刪除。
Fragment不能獨立存在,它必須嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影響。例如:當(dāng)activity暫停時,它擁有的所有的Fragment們都暫停了,當(dāng)activity銷毀時,它擁有的所有Fragment們都被銷毀。然而,當(dāng)activity運行時(在onResume()之后,onPause()之前),你可以單獨地操作每個Fragment,比如添加或刪除它們。當(dāng)你在執(zhí)行上述針對Fragment的事務(wù)時,你可以將事務(wù)添加到一個棧中,這個棧被activity管理,棧中的每一條都是一個Fragment的一次事務(wù)。有了這個棧,就可以反向執(zhí)行Fragment的事務(wù),這樣就可以在Fragment級支持“返回”鍵(向后導(dǎo)航)。
當(dāng)向activity中添加一個Fragment時,它須置于ViewGroup控件中,并且需定義Fragment自己的界面。你可以在layoutxml文件中聲明Fragment,元素為:<fragment>;也可以在代碼中創(chuàng)建Fragment,然后把它加入到ViewGroup控件中。然而,F(xiàn)ragment不一定非要放在activity的界面中,它可以隱藏在后臺為actvitiy工作。
接下來講如何使用fragment,包括fragment在加入activity的后退棧中時如何保持自己的狀態(tài),如何與activity以及其它fragment們共享事件,如何顯示在activity的動作欄,等等。


Android從3.0開始引入fragment,主要是為了支持更動態(tài)更靈活的界面設(shè)計,比如在平板上的應(yīng)用。平板機上擁有比手機更大的屏幕空間來組合和交互界面組件們。Fragment使你在做那樣的設(shè)計時,不需應(yīng)付view樹中復(fù)雜的變化。通過把activity的layout分成fragment,你可以在activity運行時改變它的樣子,并且可以在activity的后退棧中保存這些改變。
例如:寫一個讀新聞的程序,可以用一個fragment顯示標(biāo)題列表,另一個fragment顯示選中標(biāo)題的內(nèi)容,這兩個fragment都在一個activity上,并排顯示。那么這兩個fragment都有自己的生命周期并響應(yīng)自己感興趣的事件。于是,不需再像手機上那樣用一個activity顯示標(biāo)題列表,用另一個activity顯示新聞內(nèi)容;現(xiàn)在可以把兩者放在一個activity上同時顯示出來。

Fragment必須被寫成可重用的模塊。因為fragment有自己的layout,自己進行事件響應(yīng),擁有自己的生命周期和行為,所以你可以在多個activity中包含同一個Fragment的不同實例。這對于讓你的界面在不同的屏幕尺寸下都能給用戶完美的體驗尤其重要。比如你可以在程序運行于大屏幕中時啟動包含很多fragment的activity,而在運行于小屏幕時啟動一個包含少量fragment的activity。
舉個例子--還是剛才那個讀新聞的程序-當(dāng)你檢測到程序運行于大屏幕時,啟動activityA,你將標(biāo)題列表和新聞內(nèi)容這兩個fragment都放在activityA中;當(dāng)檢測到程序運行于小屏幕時,還是啟動activityA,但此時A中只有標(biāo)題列表fragment,當(dāng)選中一個標(biāo)題時,activityA啟動activityB,B中含有新聞內(nèi)容fragment。

Fragments的生命周期 
    每一個fragments 都有自己的一套生命周期回調(diào)方法和處理自己的用戶輸入事件。 對應(yīng)生命周期可參考下圖:

201622793816751.jpg (327×857)

創(chuàng)建片元(Creating a Fragment)

要創(chuàng)建一個fragment,必須創(chuàng)建一個fragment的子類(或是繼承自它的子類)。fragment類的代碼看起來很像activity。它與activity一樣都有回調(diào)函數(shù),例如onCreate(),onStart(),onPause(),和onStop()。事實上,如果你正在將一個現(xiàn)成的Android應(yīng)用轉(zhuǎn)而使用Fragment來實現(xiàn),可以簡單的將代碼從activity的回調(diào)函數(shù)移植到各自的fragment回調(diào)函數(shù)中。
一般情況下,你至少需要實現(xiàn)以下幾個生命周期方法:

onCreate()
在創(chuàng)建fragment時系統(tǒng)會調(diào)用此方法。在實現(xiàn)代碼中,你可以初始化想要在fragment中保持的那些必要組件(這里的組件是指除了view之外的東西,比如需要進行界面展示的關(guān)鍵數(shù)據(jù)),當(dāng)fragment處于暫?;蛘咄V?fàn)顟B(tài)之后可重新啟用它們。

onCreateView()
在第一次為fragment繪制用戶界面時系統(tǒng)會調(diào)用此方法。為fragment繪制用戶界面,這個函數(shù)必須要返回所繪出的fragment的根View。如果fragment沒有用戶界面可以返回空。

onPause()
系統(tǒng)回調(diào)用該函數(shù)作為用戶離開fragment的第一個預(yù)兆(盡管這并不總意味著fragment被銷毀)。在當(dāng)前用戶會話結(jié)束之前,通常要在這里提交任何應(yīng)該持久化的變化(因為用戶可能不再返回)。

大部分應(yīng)用程序都應(yīng)該至少為每個fragment實現(xiàn)這三個方法,但是還有許多其他用以操縱fragment生命周期中各個階段的回調(diào)函數(shù)。所有生命周期中的回調(diào)函數(shù)在操縱fragment生命周期一節(jié)中稍后再做討論。

除了基類fragment,這里還有幾個你可能會繼承的子類:

DialogFragment
顯示一個浮動的對話框。使用這個類創(chuàng)建對話框是使用Activity類對話框工具方法之外的另一個不錯的選擇,因為你可以把fragment對話框并入到由activity管理的fragments后臺棧中,允許用戶返回到一個已經(jīng)摒棄的fragment。

ListFragment
顯示一個由適配器管理的條目列表(例如SimpleCursorAdapter),類似于ListActivity。并且提供了許多管理列表視圖的函數(shù),例如處理點擊事件的onListItemClick()回調(diào)函數(shù)。

PreferenceFragment
顯示一個Preference對象的體系結(jié)構(gòu)列表,類似于preferenceActivity。這在為應(yīng)用程序創(chuàng)建“設(shè)置”activity時是很實用的。

相關(guān)文章

  • 讓Android中RadioGroup不顯示在輸入法上面的辦法

    讓Android中RadioGroup不顯示在輸入法上面的辦法

    在Android開發(fā)中,發(fā)現(xiàn)一個問題,打開輸入法導(dǎo)致下面的radioGroup的位置發(fā)生了變化,被頂?shù)搅溯斎敕ǖ纳厦?,那么該如何解決呢?下面來看看。
    2016-08-08
  • Android的分辨率和屏幕適配詳解

    Android的分辨率和屏幕適配詳解

    對于剛接觸Android的新人和剛走上Android技術(shù)崗位的開發(fā)者們來說,在熟悉了相關(guān)之后,在項目完成后,就會面臨著一個重大的挑戰(zhàn),那么就是屏幕適配的問題。當(dāng)然我們所說的屏幕適配指的是適配各種手機不同的分辨率。
    2016-09-09
  • 一步步教你寫Slack的Loading動畫

    一步步教你寫Slack的Loading動畫

    這篇文章主要為大家詳細(xì)手摸手教你寫Slack的Loading動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • AndroidStudio實現(xiàn)能在圖片上涂鴉程序

    AndroidStudio實現(xiàn)能在圖片上涂鴉程序

    這篇文章主要為大家詳細(xì)介紹了AndroidStudio實現(xiàn)能在圖片上涂鴉程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Android百度地圖應(yīng)用之圖層展示

    Android百度地圖應(yīng)用之圖層展示

    這篇文章主要為大家詳細(xì)介紹了Android百度地圖應(yīng)用之圖層展示,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Android事件分發(fā)的事件由來原理分析

    Android事件分發(fā)的事件由來原理分析

    這篇文章主要為大家介紹了Android事件分發(fā)的事件由來原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Android自定義View實現(xiàn)數(shù)字雨效果的全過程

    Android自定義View實現(xiàn)數(shù)字雨效果的全過程

    小時候看時印象最深的就是數(shù)字雨了,導(dǎo)致我現(xiàn)在寫代碼也要是黑屏,下面這篇文章主要給大家介紹了關(guān)于Android自定義View實現(xiàn)數(shù)字雨效果的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • Android中TabLayout結(jié)合ViewPager實現(xiàn)頁面切換

    Android中TabLayout結(jié)合ViewPager實現(xiàn)頁面切換

    這篇文章主要為大家詳細(xì)介紹了Android中TabLayout結(jié)合ViewPager實現(xiàn)頁面切換效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Flutter實現(xiàn)底部導(dǎo)航欄效果

    Flutter實現(xiàn)底部導(dǎo)航欄效果

    這篇文章主要為大家詳細(xì)介紹了Flutter實現(xiàn)底部導(dǎo)航欄效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • android提取視頻多張圖片和視頻信息實例

    android提取視頻多張圖片和視頻信息實例

    本篇文章主要介紹了android提取視頻多張圖片和視頻信息實例,具有一定的參考價值,有興趣的可以了解一下
    2017-05-05

最新評論

曲麻莱县| 昌黎县| 阿克苏市| 常熟市| 湾仔区| 永兴县| 闻喜县| 大石桥市| 信阳市| 武山县| 永年县| 鹤岗市| 宿迁市| 侯马市| 佳木斯市| 原阳县| 台江县| 阆中市| 遵义市| 渝中区| 香格里拉县| 西充县| 南丰县| 郎溪县| 武安市| 都安| 融水| 凤冈县| 舞阳县| 临海市| 玉门市| 会同县| 济阳县| 荃湾区| 长丰县| 称多县| 通许县| 安溪县| 华蓥市| 扎鲁特旗| 巫溪县|