Android 中關於Fragment嵌套Fragment的問題


轉載請注明出處:http://www.cnblogs.com/Joanna-Yan/p/5802146.html 

問題描述:

在項目中Activity A中嵌套Fragment B,Fragment B中再嵌套Fragment C,如圖:

 

問題1:在點擊Activity A中主菜單1進行切換時,報錯Fragment C already added。

解決:在Framgent B中添加Fragment C 調用add()時先判斷fragmentC.isAdded()

FragmentManager fm=getActivity().getSupportFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
if(!sub1Fragment.isAdded()){
    ft.add(R.id.rl_fragment_container, sub1Fragment).commit();
}

問題2:修改后發現,Fragment C布局添加失敗,同時切換主菜單2時,報錯。

解決:這是Fragment的嵌套問題。FragmentB中的嵌套不能再用getActivity().getSupportFragmentManager();要用getChildFragmentManager();

即上面代碼應改為:

FragmentManager fm=getChildFragmentManager(); 
FragmentTransaction ft
=fm.beginTransaction();
if(!sub1Fragment.isAdded()){
  ft.add(R.id.rl_fragment_container, sub1Fragment).commit();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM