【问题标题】:How set a SupportMapFragment (replace fragment) in a NavigationDrawer?如何在 NavigationDrawer 中设置 SupportMapFragment(替换片段)?
【发布时间】:2014-10-29 20:53:28
【问题描述】:

我有一个导航抽屉,我想在用户单击按钮时打开地图。问题是我无法替换当前片段并设置我的 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 函数中是我遇到问题的地方。

您可以在下面看到我的片段 ma​​p.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 属性。但我仍然遇到主要问题。看看下面的屏幕显示。

【问题讨论】:

  • 你解决问题了吗?我现在也有同样的问题:(

标签: android android-fragments navigation-drawer supportmapfragment


【解决方案1】:

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

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

尝试修复它。

【讨论】:

  • 谢谢,今晚下班我去看看。如果没问题,我会告诉你。
  • 我仍然有问题...你知道我该如何解决吗?或者我正在尝试一些不可能的事情。谢谢!!
  • 哦。您可能不希望 Map 扩展 SupportmapFragment 相反,您希望它扩展 MapFragment
  • 让我解释一下。我有一个导航抽屉,当用户单击地图选项卡时,我想要它打开地图。当用户单击选项卡时,我总是替换一个片段,这就是我需要的。我正在使用 SupportmapFragment,因为我认为它会被片段支持.. 但不是。那么有什么方法可以替换片段并显示地图??
  • 你可以看到我添加的图片。我设置对象'fragment'的值,然后设置fragmentManager.beginTransaction() .replace(R.id.container, fragment) .commit();
猜你喜欢
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 2020-05-18
  • 1970-01-01
相关资源
最近更新 更多