【问题标题】:getSupportFragmentManager() inside a fragment inside a fragmentgetSupportFragmentManager() 在一个片段里面 一个片段里面
【发布时间】:2016-08-27 16:00:01
【问题描述】:
我有一个导航抽屉活动,并且片段像往常一样用于导航抽屉的不同项目。导航抽屉的第一项中有一个选项卡布局。选项卡布局已使用 viewpager 实现。这个viewpager里面有一张地图。
我想做的是打电话
SupportMapFragment mapFragment = (SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map);
但 mapFragment 始终为空。
我花了2个多小时应用了很多方法,但都没有成功。
据我所知,这里的问题是这样的。 getActivity() 方法返回导航抽屉活动。 getSupportFragmentManager() 返回附加到导航抽屉的片段。但地图不在那个片段中。地图位于视图分页器的片段内。
谁能建议一种方法来实现这一点?
【问题讨论】:
标签:
android
google-maps
android-fragments
android-viewpager
【解决方案1】:
使用这个getChildFragmentManager(); 在Fragment 中获取FragmentManager
【解决方案2】:
我可以使用如下代码:
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);
}