Android 碎片(Fragment)講解
導讀 | 安卓(Android)是一種基於 的自由及開放原始碼的作業系統。主要使用於移動裝置,如智慧手機和平板電腦,由Google公司和開放手機聯盟領導及開發。 |
碎片是活動的一部分,使得活動更加的模組化設計。我們可以認為碎片是一種子活動。
下面是關於碎片的重要知識點 -
- 碎片擁有自己的佈局,自己的行為及自己的生命週期回撥。
- 當活動在執行的時候,你可以在活動中新增或者移除碎片。
- 你可以合併多個碎片在一個單一的活動中來構建多欄的UI。
- 碎片可以被用在多個活動中。
- 碎片的生命週期和它的宿主活動緊密關聯。這意味著活動被暫停,所有活動中的碎片被停止。
- 碎片可以實現行為而沒有使用者介面元件。
- 碎片是 Android API 版本11中被加入到 Android API。
- onAttach(): 碎片例項被關聯到活動例項。碎片和活動還沒有完全初始化。通常,你在該方法中獲取到活動的引用,在碎片將來的初始化工作中被使用。
- onCreate(): 當建立碎片時,系統呼叫該方法。你需要初始化一些碎片的必要元件。這些元件是當碎片被暫停、停止時需要保留的,以便被恢復。
- onCreateView(): 當碎片將要第一次繪製它的使用者介面時系統呼叫該方法。為了繪製碎片的UI,你需要從該方法中返回一個代表碎片根佈局的View元件。如果該碎片不提供使用者介面,直接返回null。
- onActivityCreated: 當宿主活動被建立,在onCreateView()方法之後呼叫該方法。活動和碎片例項與活動的檢視層級被建立。這時,檢視可以透過findViewById()方法來訪問。在這個方法中,你可以例項化需要Context物件的物件。
- onStart(): 碎片可見時呼叫該方法。
- onResume(): 碎片可互動時呼叫該方法。
- onPause(): 當首次表明使用者將要離開碎片時系統呼叫該方法。通常,這裡你需要提交任何的會超出使用者會話的持久化的變化。
- onStop(): 碎片將要被停止時呼叫。
- onDestroyView(): 呼叫該方法後,碎片將要被銷燬。
- onDestroy(): 該方法被用來清理碎片的狀態。但在Android平臺並不保證一定被呼叫。
- 首先決定在活動中需要使用多少個碎片。例如,我們需要使用兩個碎片來處理裝置的橫屏和豎屏兩種模式。
- 下一步,基於碎片數量,建立繼承自類Fragment的類。類Fragment包含上面提到的回撥函式。根據你的需求重寫任意的方法。
- 對應每個片段,你需要在XML檔案中建立佈局。這些檔案中包含已定義的碎片的佈局。
- 最後,基於需求修改活動檔案來定義實際的碎片替換邏輯。
- 單幀碎片 - 單幀碎片被如行動電話之類的手持裝置使用。一個碎片如同一個影片一樣顯示。
- 列表碎片 - 包含有特殊列表檢視的碎片被叫做列表碎片。
- 碎片過渡 - 與碎片事務一起使用。可以從一個碎片移動到另外一個碎片。
透過繼承 Fragment 類來建立碎片。可以透過使用 元素在活動的佈局檔案中宣告碎片來在你的活動中插入碎片。
在引入碎片之前,由於每次給定的一個時間點在螢幕上只能顯示單一的活動,因此我們有一個侷限。我們無法分割裝置螢幕並且獨立的控制不同的部分。伴隨著碎片的引入,我們獲得了更大的靈活性,並使得一個時間點只能在螢幕上有一個單一活動的限制被移除。現在我們可以有單一的活動,但每個活動由多個碎片組裝,每個碎片有自己的佈局,事件和完整的生命週期。
下面是一個典型的示例演示如何讓兩個由碎片定義的UI模組,在為平板設計的活動中組合,在為手持裝置設計的活動中分離。
當執行在在平板尺寸的裝置上,這個應用程式可以在活動A中嵌入兩個碎片。在手機裝置螢幕上,由於沒有足夠的空間,活動A僅包含有文章列表的碎片,當使用者點選文章時,啟動包含第二個碎片的活動B來閱讀文章。
Android 的碎片擁有自己的生命週期,與 Android 的活動很相似。下面簡單介紹它生命週期的不同階段。
這是在類fragment中你可以重寫的方法列表:
這裡介紹建立碎片的簡單步驟。
基本的碎片可以分為如下所示的三種:
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2685355/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android Fragment用法知識點的講解AndroidFragment
- android基礎學習-android篇day17-Android Fragment(碎片)基本使用AndroidFragment
- Android之FragmentAndroidFragment
- Android基礎—FragmentAndroidFragment
- Android中Fragment巢狀Fragment,切換Fragment時不顯示檢視的原因及解決方法AndroidFragment巢狀
- Android--單Activity+多Fragment,玩轉FragmentAndroidFragment
- 【Android Fragment】友盟統計 Fragment 頁面顯示隱藏的完美解決方案AndroidFragment
- 【Android Fragment】解決ViewPager巢狀時Fragment的mUserVisibleHint屬性不同步的問題AndroidFragmentViewpager巢狀
- Android 點將臺:撒豆成兵[- Fragment -]AndroidFragment
- Android Jetpack - Fragment官方說明AndroidJetpackFragment
- 【Android Fragment】解決Fragment多層巢狀時onActivityResult無法正確回撥的問題AndroidFragment巢狀
- Android優化--Fragment懶載入Android優化Fragment
- Android面試題之Fragment篇Android面試題Fragment
- Android ViewPager2 + Fragment 聯動AndroidViewpagerFragment
- Android Fragment看這篇就夠了AndroidFragment
- Android技能樹 — Fragment總體小結AndroidFragment
- Fragment中的那些坑——Android進階FragmentAndroid
- Android入門教程 | Fragment 基礎概念AndroidFragment
- Android ViewPager2 + Fragment + BottomNavigationView 聯動AndroidViewpagerFragmentNavigation
- Android——RxJava2史上最全講解AndroidRxJava
- 巧用Fragment解耦onActivityResultFragment解耦
- Android fragment 標籤載入過程分析AndroidFragment
- Android筆記之Fragment的startActivityForResult(與requestPermissions)Android筆記Fragment
- Flutter Android 端 Activity/Fragment 流程原始碼分析FlutterAndroidFragment原始碼
- android位運算講解與實戰Android
- Android APK反編譯技巧全講解AndroidAPK編譯
- 使用fragment載入自定義fragment出現error inflating class fragment錯誤解決辦法FragmentError
- Android技術棧(一)從Activity遷移到FragmentAndroidFragment
- Android tabLayout+viewPager+fragment處理懶載入AndroidTabLayoutViewpagerFragment
- Android setUserVisibleHint-- fragment真正的onResume和onPause方法AndroidFragment
- Android 在 ViewPager 中使用 Fragment 的懶載入AndroidViewpagerFragment
- Android使用(TabLayout+ViewPager+fragment)與(FragmentTabHost+ViewPager+Fragment)實現底部狀態列切換AndroidTabLayoutViewpagerFragment
- Android:Retrofit 2.0 使用攻略(含例項講解)Android
- 記憶體碎片與緩解記憶體
- Android官方架構元件Navigation:大巧不工的Fragment管理框架Android架構元件NavigationFragment框架
- Android | Activity和Fragment最全生命週期+發現大牛AndroidFragment
- Android入門教程 | Fragment (載入方法與通訊)AndroidFragment
- [譯] android應用開發者,你們真的瞭解Fragment的生命週期嗎?AndroidFragment