Android Fragment概述及用法
Fragment一般是宿主Activity UI的一部分或一種行為,作為Activity的整個View Hierarchy的一部分嵌入。我們可以將多個Fragment組合到一個Activity中創(chuàng)建一個多面界面,也可以在多個Activity中重用一個Fragment。
Fragment概述
我們可以把Fragment視為模塊化的一段Activity,它具有自己的生命周期,接收它自己的事件,并可以在activity運(yùn)行時被添加或刪除。
Fragment不能獨(dú)立存在,它必須嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影響。例如:當(dāng)activity暫停時,它擁有的所有的Fragment們都暫停了,當(dāng)activity銷毀時,它擁有的所有Fragment們都被銷毀。然而,當(dāng)activity運(yùn)行時(在onResume()之后,onPause()之前),你可以單獨(dú)地操作每個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,包括fragment在加入activity的后退棧中時如何保持自己的狀態(tài),如何與activity以及其它fragment們共享事件,如何顯示在activity的動作欄,等等。
Android從3.0開始引入fragment,主要是為了支持更動態(tài)更靈活的界面設(shè)計,比如在平板上的應(yīng)用。平板機(jī)上擁有比手機(jī)更大的屏幕空間來組合和交互界面組件們。Fragment使你在做那樣的設(shè)計時,不需應(yīng)付view樹中復(fù)雜的變化。通過把a(bǔ)ctivity的layout分成fragment,你可以在activity運(yùn)行時改變它的樣子,并且可以在activity的后退棧中保存這些改變。
例如:寫一個讀新聞的程序,可以用一個fragment顯示標(biāo)題列表,另一個fragment顯示選中標(biāo)題的內(nèi)容,這兩個fragment都在一個activity上,并排顯示。那么這兩個fragment都有自己的生命周期并響應(yīng)自己感興趣的事件。于是,不需再像手機(jī)上那樣用一個activity顯示標(biāo)題列表,用另一個activity顯示新聞內(nèi)容;現(xiàn)在可以把兩者放在一個activity上同時顯示出來。如下圖:
Fragment必須被寫成可重用的模塊。因?yàn)閒ragment有自己的layout,自己進(jìn)行事件響應(yīng),擁有自己的生命周期和行為,所以你可以在多個activity中包含同一個Fragment的不同實(shí)例。這對于讓你的界面在不同的屏幕尺寸下都能給用戶完美的體驗(yàn)尤其重要。比如你可以在程序運(yùn)行于大屏幕中時啟動包含很多fragment的activity,而在運(yùn)行于小屏幕時啟動一個包含少量fragment的activity。
舉個例子--還是剛才那個讀新聞的程序-當(dāng)你檢測到程序運(yùn)行于大屏幕時,啟動activityA,你將標(biāo)題列表和新聞內(nèi)容這兩個fragment都放在activityA中;當(dāng)檢測到程序運(yùn)行于小屏幕時,還是啟動activityA,但此時A中只有標(biāo)題列表fragment,當(dāng)選中一個標(biāo)題時,activityA啟動activityB,B中含有新聞內(nèi)容fragment。
以上就是對Android Fragment的資料整理,后續(xù)繼續(xù)補(bǔ)充相關(guān)資料,謝謝大家對本站的支持!
- Android應(yīng)用UI開發(fā)中Fragment的常見用法小結(jié)
- Android應(yīng)用開發(fā)中Fragment存儲功能的基本用法
- Android基礎(chǔ)之使用Fragment控制切換多個頁面
- Android基礎(chǔ)之Fragment與Activity交互詳解
- Android中fragment嵌套fragment問題解決方法
- Android Fragment 基本了解(圖文介紹)
- android開發(fā)教程之實(shí)現(xiàn)滑動關(guān)閉fragment示例
- Android使用Fragment打造萬能頁面切換框架
- Android應(yīng)用開發(fā)中Fragment的靜態(tài)加載與動態(tài)加載實(shí)例
- Android中Fragment的基本用法示例總結(jié)
相關(guān)文章
Android 系統(tǒng)實(shí)現(xiàn)多種開機(jī)動畫和logo切換功能
這篇文章主要介紹了android 系統(tǒng)實(shí)現(xiàn)多種開機(jī)動畫和logo切換功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-12-12Android開發(fā)實(shí)現(xiàn)Fragment監(jiān)聽返回鍵事件功能的方法
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)Fragment監(jiān)聽返回鍵事件功能的方法,結(jié)合實(shí)例形式分析了Android使用Fragment監(jiān)聽并屏蔽返回鍵按鈕的實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下2017-11-11Android使用DocumentFile讀寫外置存儲的問題
大家好,本篇文章主要講的是Android使用DocumentFile讀寫外置存儲的問題,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2021-12-12Android Loader詳細(xì)介紹及實(shí)例代碼
這篇文章主要介紹了Android Loader詳細(xì)介紹及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-12-12詳解SwipeListView框架實(shí)現(xiàn)微信\QQ滑動刪除效果
這篇文章主要為大家詳細(xì)介紹了SwipeListView框架實(shí)現(xiàn)微信\QQ滑動刪除效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08Android Parcelable與Serializable詳解及區(qū)別
這篇文章主要介紹了Android Parcelable與Serializable詳解及區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-01-01Android編程實(shí)現(xiàn)Gallery中每次滑動只顯示一頁的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)Gallery中每次滑動只顯示一頁的方法,涉及Android擴(kuò)展Gallery控件實(shí)現(xiàn)翻頁效果控制的功能,涉及Android事件響應(yīng)及屬性控制的相關(guān)技巧,需要的朋友可以參考下2015-11-11關(guān)于Touch Panel AA區(qū)要做外擴(kuò)的原因解析
今天小編就為大家分享一篇關(guān)于Touch Panel AA區(qū)要做外擴(kuò)的原因解析,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12