在一个Fragment内部的Fragment中使用getSupportFragmentManager()

6

我有一个导航抽屉活动,并像通常一样使用片段来处理导航抽屉的不同项目。在导航抽屉的第一项中有一个选项卡布局。 选项卡布局已使用viewpager实现。 在这个viewpager内部有一个地图。

我想要做的是调用

SupportMapFragment mapFragment = (SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map);

但是mapFragment总是为空。

我花了超过2个小时尝试了很多方法,但都没有成功。

据我所知,这里的问题是这样的。getActivity()方法返回导航抽屉活动。getSupportFragmentManager()返回附加到导航抽屉的片段。但是地图不在该片段中。地图位于视图页面内的片段中。

有人能建议一种实现这个的方法吗?

2个回答

11
使用此getChildFragmentManager();方法在Fragment内获取FragmentManager

-1
我能够按照以下方式使用代码:
private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());
    adapter.addFragment(new OneFragment(), "ONE");
    adapter.addFragment(new TwoFragment(), "TWO");
    adapter.addFragment(new ThreeFragment(), "THREE");
    viewPager.setAdapter(adapter);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接