fragment嵌套子fragment


場景:

  需求是在expandablelistview的item長按會彈出一個對話框,對話框頂部一個選項卡,下面是fragment作相應的切換。對話框是用DialogFragment實現的。

問題: 

java.lang.IllegalArgumentException: No view found for id 0x7f0c00a8 (app.yinhai.org.securitycheckapp:id/container_contentDialog) for fragment ContentDialogFragmentRight{41d00280 #1 id=0x7f0c00a8}
切換時會報這個錯。

解決:

  代碼中獲得的fragmentManager方式不對,應該用getChildFragmentManager()方法返回fragmentManager對象。

  引用一段別人的總結:

  當您遇到想在一個可復用的動態UI組件里放入另一個可復用的UI組件時,這個方案就非常有用。例如,如果您用ViewPager做了個可左右滑動的Fragment,並占用了大部分屏幕空間,您可以在其中的每個fragment頁面中嵌入別的fragment了。 想要實現嵌套Fragment,只需在您想進行嵌入的Fragment中調用getChildFragmentManager() 方法。這樣會返回一個FragmentManager,然后您就可以用和在頂層的Acitivity中嵌入fragment一樣的方法進行操作了。例如,以下代碼在一個現有的Fragment類中加上了另一個Fragment: 
  Fragment videoFragment = new VideoPlayerFragment();
  FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
  transaction.add(R.id.video_fragment, videoFragment).commit();
在嵌套的fragment中,您可以通過調用getParentFragment()方法來獲取父fragment的引用。


免責聲明!

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



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