如何在NavigationDrawer中设置SupportMapFragment(替换片段)?

时间:2014-10-29 20:53:28

标签: android android-fragments navigation-drawer supportmapfragment

我有一个导航抽屉,我想在用户点击按钮时打开地图。问题是我无法替换当前片段并设置我的SupportMapFragment。我认为SupportMapFragment也是一个片段,但我必须是错的。我做错了什么?我该如何解决?

课程地图

public class Map extends SupportMapFragment {

private GoogleMap map;

//Position
public static final LatLng TEMPORALPOSITION = new LatLng(4.667184, -74.059463);

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.map, container, false);
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    map = getMap();
    map.moveCamera(CameraUpdateFactory.newLatLng(TEMPORALPOSITION));

}

}

onNavigationDrawerItemSelected函数

    @Override
public void onNavigationDrawerItemSelected(int position) {
    FragmentManager fragmentManager = getFragmentManager();

    Fragment fragment = new Fragment();

    switch(position) {
        case 0:
            fragment = new Stations();
            break;
        case 1:
            fragment = new Favorites();
            break;
        case 2:
            fragment = new Map();
            break;
    }

    fragmentManager.beginTransaction()
            .replace(R.id.container, fragment)
            .commit();
}

在onNavigationDrawerItemSelected函数中我遇到了问题。

下面你可以看到我的片段 map.xml 也许它可以提供帮助。

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

谢谢!

编辑:

我在我的xml中更改了android:name属性..但我仍然遇到了主要问题。看一下屏幕显示如下。

I can't do that

1 个答案:

答案 0 :(得分:0)

xml中的android:name属性不正确。它应该是:

android:name="com.google.android.gms.maps.SupportMapFragment"

尝试修复它。