我目前正在为 Android 4.3 开发。
背景:
我正在使用 pageViewer 在三个不同的 fragment 之间滚动。
我的第二个 fragment (选项卡 2)包含带有 SupportMapFragment 和其他内容的 XML。如下图:
My problem http://imageupload.co.uk/files/vrhg1e06x977rkm1vhmd.jpg
我的尝试:
在搜索网络时,我注意到对于 SupportMapFragment,我需要 FragmentActivity,它不适用于 FragmentPagerAdapter。
我需要用户能够控制 map 以及控制 fragment 中的其余内容。
我的问题:
如何在 fragment 中包含更多内容的同时将 SupportMapFragment 与 viewPager 一起使用?
关于我的代码的更多信息: 在 FragmentPagerAdapter 的 getItem 中,我返回单例 fragment (每个 fragment 都有一个类),因此我无法在互联网上找到任何解决方案,因为我的类无法扩展 SupportMapFragment,因为它有更多数据。
最佳答案
从 Android 4.2 开始(也在 Jelly 之前的支持库中)你可以使用 nested fragments .
你可以看到如何创建这样的 fragment :
public class MyFragment extends Fragment {
private SupportMapFragment fragment;
private GoogleMap map;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.layout_with_map, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
FragmentManager fm = getChildFragmentManager();
fragment = (SupportMapFragment) fm.findFragmentById(R.id.map_container);
if (fragment == null) {
fragment = SupportMapFragment.newInstance();
fm.beginTransaction().replace(R.id.map_container, fragment).commit();
}
}
@Override
public void onResume() {
super.onResume();
if (map == null) {
map = fragment.getMap();
map.addMarker(new MarkerOptions().position(new LatLng(0, 0)));
}
}
}
以上代码复制自here .
重要说明:您的自定义 Fragments
的布局不能包含 <fragment>
标签。
关于android - 带有 viewPager 的 Maps V2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18369639/