1. 程式人生 > >getFragmentManager 、getSupportFragmentManager 與getChildFragmentManager三者之間的區別

getFragmentManager 、getSupportFragmentManager 與getChildFragmentManager三者之間的區別

首先getFragmentManager 、getSupportFragmentManager這個兩個FragmentManager用的最多,Fragment是安卓3.0以後引入的API,FragmentManager是管理Fragment的片段管理器,

簡單點說如果你的專案是執行在安卓系統3.0以後的版本(高版本)就用getFragmentManager來得到FragmentManager,那麼問題來了,如果你要執行在安卓系統3.0之前的版本(低版本)能執行嗎?答案當然是不行滴!!!

會報錯,如下圖所示!
這裡寫圖片描述

那麼我就想執行在低版本的手機上該怎麼辦呢?安卓為我們提供了一個向下相容的包—-android.support.v4。這時我們獲取片段管理器就需要用getSupportFragmentManager

這個方法了,然後修改你自己寫的繼承Fragment的類 修改導包 android.app.Fragment—>android.support.v4.app.Fragment

然後在你切換Fragment的Activity改為繼承FragmentActivity ,最後執行專案即可。

瞭解完上面兩個FragmentManager之後我們再來看看getChildFragmentManager, 當Fragment巢狀Fragment時(也就是說你的Fragment裡面還有子Fragment),裡面需要用getChildFragmentManager來獲得FragmentManager,