Fragment
成都創(chuàng)新互聯(lián)科技有限公司專業(yè)互聯(lián)網(wǎng)基礎服務商,為您提供雅安機房托管,高防服務器,成都IDC機房托管,成都主機托管等互聯(lián)網(wǎng)服務。
由于Activity太“重”不能動態(tài)注冊、不能模塊化,因此引入Fragment
一、生命周期
onAttach():Fragment和Activity相關聯(lián)時調(diào)用。可以通過該方法獲取Activity引用,還可以通過getArguments()獲取參數(shù)。
onCreateView():創(chuàng)建Fragment的布局。
onActivityCreated():當Activity完成onCreate()時調(diào)用。
onDestroyView():當Fragment的UI從視圖結(jié)構中移除時調(diào)用。
onDetach():當Fragment和Activity解除關聯(lián)時調(diào)用。
其它生命周期與Activity相同
上面的方法中,只有onCreateView()在重寫時不用寫super方法,其他都需要。
二、注意事項
1、參數(shù)傳遞 使用setArg(“bundle”),F(xiàn)ragment最好創(chuàng)建個newInstance(xx),讓調(diào)用者不需要知道key名稱
2、getActivity在onAttach中獲取.
3、提交盡量用Commit,如在異步中提交,建議使用commitAllowingStateLoss()?
? ? ? ? commit? -> 安排當前事務FragmentTransaction進行提交。異步,必須在Activity的onSaveInstanceState調(diào)用之前提交。否則會拋異常。
commitAllowingStateLoss ->? 和commit類似。但是如果本次是在Activity的onSaveInstanceState調(diào)用之后,那么本次提交記錄在Activity恢復的時候,可能不被保存。
commitNow() ->將事務立即提交。所有添加的Fragment會被立即初始化,并開始生命周期。所有被移除的Fragment將會被立即移除。
調(diào)用這個方法,相當于調(diào)用commit,然后調(diào)用FragmentManager的executePendingTransactions()。
commitNowAllowingStateLoss() -> 和commitNow類似。但是如果在在Activity的onSaveInstanceState調(diào)用之后,那么本次提交記錄在Activity恢復的時候,可能不被保存。
?4..當FragmentA(初始化)和FragmentB(后啟動)調(diào)用 fragmentTransaction.replace()
"新建"??(onAttach->onCreate->onCreateView->onActivityCreated)
"顯示" ?(onStart->onResume)
"隱藏" ?(onPause->onStop)
“結(jié)束” ?(onDestroyView->onDestroy->onDetach)
FragmentA?"打開"--->執(zhí)行?"新建"??再執(zhí)行FragmentA 的"顯示"
FragmentB?"打開"--->執(zhí)行FragmentA "隱藏" ?再才執(zhí)行FragmentA “關閉”?執(zhí)行?Fragment B?"新建"??再執(zhí)行Fragment B 的"顯示"
FragmentB?"關閉"--->執(zhí)行FragmentB?"隱藏"??再才執(zhí)行FragmentB?“關閉”?最后執(zhí)行FragmentA 的"顯示"
5、防止fragment重新加載,浪費用戶流量或者影響用戶體驗。對于FragmentTransation的replace方法,官方的建議是如果上一個fragment是不保留的情況下可以使用。否則的話采用先add然后根據(jù)需求hide或者show,這樣可以實現(xiàn)fragment緩存,另外一張情況就是和ViewPager聯(lián)合使用,然后設置setOffscreenPageLimit()這個方法設置緩存的頁面的大小。?
加回退棧的操作,如果使用 addToBackStack(String)將會拋出一個 IllegalStateException的異常。
參考:
基礎(轉(zhuǎn)載):https://www.jianshu.com/p/11c8ced79193
進階(轉(zhuǎn)載):https://www.jianshu.com/p/d9143a92ad94
備注:個人筆記,有錯請及時指出,謝謝?聯(lián)系QQ:285232718
當前文章:四大組件(5)-Fragment
當前地址:http://muchs.cn/article42/piohhc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、小程序開發(fā)、商城網(wǎng)站、關鍵詞優(yōu)化、全網(wǎng)營銷推廣、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)