Fragment的坑(还是得多看对应源码)

1.在图灵猫中控的项目中有一个布局是:Activity中 ViewPager(FragmentStatePagerAdapter)+ Fragment

  其中在某个Fragment(A)中由于需要区分状态而显现完全不同的布局所以里面又嵌套了Fragment(在同个布局id上替换),这时应选择getChildFragmentManager。如果用getFragmentManager获取的FragmentManager,那么如果相邻有多个A Fragment,部分A可能无法显现内容

  由于有Fragment嵌套,那么他们之间的通信如果采用setTargetFragment 和 手动调用fragment.onActivityResult来实现。可能会出现Fragment no longer exists 的异常。这是因为FragmentManager在moveToState中会尝试通过getFragment方法去找到targetFragment,而这里是两个不同的FragmentManager实例所以会出错。 其实可以换成在子Fragment中通过getParentFragment来获取父Fragment再调用父Fragment.onActivityResult的方法

posted @ 2016-07-27 00:46  林哲  阅读(158)  评论(0)    收藏  举报