今天總結一下我對Fragment的理解(碎片的入棧與出棧,碎片的巢狀)
阿新 • • 發佈:2019-02-20
1.碎片的巢狀!
getFragmentManager到的是activity對所包含fragment的Manager,而如果是fragment巢狀fragment,那麼就需要利用getChildFragmentManager()了。getFragmentManager()是所在fragment 父容器的碎片管理,
getChildFragmentManager()是在fragment 裡面子容器的碎片管理。
Fragment裡面巢狀Fragment 的話:一定要用getChildFragmentManager();
包括 碎片中巢狀viewpager 也適用 2.碎片的出入棧! 加入碎片並讓其入棧。。附程式碼吧。。。。。。
transaction事務的處理 入棧 而且可以給事務設定動畫 這樣切換碎片就有動畫啦!!!!=manager.beginTransaction(); transaction.addToBackStack(""); transaction.replace(R.id.yizhu_rly,new Hand_Fragment()); transaction.commit();
fragmentTransaction.setCustomAnimations(R.anim.push_left_in, R.anim.push_left_out, R.anim.back_left_in, R.anim.back_right_out);
碎片的出棧(呃 簡單說就是銷燬吧 個人理解 ,)
getFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);//直接回到棧頂
getFragmentManager().popBackStack();//若棧中有很多碎片只會向上彈一個
由於本人只用過這兩個 所以 歡迎大家補充!說的不對之處請指出,大家一起學習