ViewPager嵌套Fragment,导致onActivityResult无法调用的问题

主要描述:项目需要用到,一个activity中包含一个主fragment,而主fragment包含一个viewpager,viewpager中有三个fragment可以切换:
解决过程中的坑:因为网上查询到在activity中重写onActivityResult的方法进行事件分发,后来发现因为activity中包含一个主fragment,因此分发失败。
1、其中第一个fragment有打开上传图片的activity的操作,所以在第一个fragment重写了onActivityResult;
2、而第三个fragment启动ping++的支付activity,而第三个fragment重写的onActivityResult不起作用。
解决办法:如下(重点是onActivityResult的分发)
在ViewPager里面,你只需要在根Fragment(记得是根:也就是我前面描述提到的主fragment)里面添加 如下代码就可以了

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  List frags = getChildFragmentManager().getFragments();
  if (frags != null) {
    for (Fragment f : frags) {
      if (f != null)
      f.onActivityResult(requestCode,resultCode,data);
      }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容