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