标签中的Google地图视图

时间:2015-01-08 21:45:29

标签: android google-maps android-fragments

我正在使用基本的android studio标签示例。我想知道你是否可以在每个标签上进行单独的活动?或者是用于什么片段。我有一个单独的简单谷歌地图应用程序(活动),我试图将其集成到选项卡示例中。我想知道在标签示例的这一部分中是否设置了相应的片段,如果我可以将意图放在那里的地图活动中?

   public class SectionsPagerAdapter extends FragmentPagerAdapter {

        public SectionsPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            // getItem is called to instantiate the fragment for the given page.
            // Return a PlaceholderFragment (defined as a static inner class below).
            return PlaceholderFragment.newInstance(position + 1);
        }

        @Override
        public int getCount() {
            // Show 3 total pages.
            return 3;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            Locale l = Locale.getDefault();
            switch (position) {
                case 0:
                    return getString(R.string.title_section1).toUpperCase(l);
                case 1:
                    return getString(R.string.title_section2).toUpperCase(l);
                case 2:
                    return getString(R.string.title_section3).toUpperCase(l);
            }
            return null;
        }
    }

这是基本的地图活动

public class MapsView extends FragmentActivity {

    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps_view);
        setUpMapIfNeeded();
    }

    @Override
    protected void onResume() {
        super.onResume();
        setUpMapIfNeeded();
    }

    private void setUpMapIfNeeded() {
        if (mMap == null) {
            mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                    .getMap();
            if (mMap != null) {
                setUpMap();
            }
        }
    }

    private void setUpMap() {
        mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
    }
}

和地图视图的相应片段

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MapsView" />

我想如果我没有任何意义,我真的只想要一些关于将地图合并到标签视图的最佳方法的指导。

1 个答案:

答案 0 :(得分:0)

这将教会您需要知道的一切: http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/

总结一下,在FragmentStatePagerAdapter getItem()方法中返回一个新的片段实例。这样的片段应该包含你的MapView。这样,您可以随意加载不同的片段(具有不同的布局)。

但请注意:上次我尝试以这种方式使用MapView时,它只是没有加载(只有一个空白网格)。我很肯定它与我的密钥无关,因为使用MapFragment(一种不同的方法)结果没问题。