【问题标题】:Maps V2 with viewPager带有 viewPager 的地图 V2
【发布时间】:2013-08-22 00:07:13
【问题描述】:

我目前正在为 Android 4.3 开发。
背景:
我正在使用 pageViewer 在三个不同的片段之间滚动。 我的第二个片段(选项卡 2)包含带有 SupportMapFragment 和其他内容的 XML。如下图:
My problem http://imageupload.co.uk/files/vrhg1e06x977rkm1vhmd.jpg
我的尝试:
在搜索网络时,我注意到 SupportMapFragment 我需要 FragmentActivity,它不适用于 FragmentPagerAdapter。 我需要用户能够控制地图以及控制片段中的其余内容。
我的问题:
如何在片段中有更多内容的同时将 SupportMapFragment 与 viewPager 一起使用?

更多关于我的代码: 在 FragmentPagerAdapter 内的 getItem 中,我返回单例片段(每个片段都有一个类),因此我无法通过 Internet 找到任何解决方案,因为我的类无法扩展 SupportMapFragment,因为它有更多数据。

【问题讨论】:

    标签: android android-viewpager android-maps-v2


    【解决方案1】:

    从 Android 4.2 开始(也在 pre-Jelly 的支持库中),您可以使用 nested fragments

    你可以看到如何创建这样的片段是:

    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> 标签。

    【讨论】:

    • 那map_container的内容是什么?
    • @AdrianOlar map_container 通常是 FrameLayout,它将托管通过代码添加的片段,如上例所示。
    • 非常感谢您的回答,真的很有帮助。
    • 我不太清楚,但我曾经使用过这个代码 这不起作用。然后我用你的代码。运作良好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多