java - 无法在 fragment 内使用谷歌地图V2

标签 java android google-maps android-fragments

我知道这个问题已经被问过几次了,但我无法通过查看它们找到解决我的问题的方法。我创建了一个抽屉导航。抽屉导航自然有助于切换 fragment 。在这样一个 fragment 中,我想显示一张谷歌地图。

ma​​p_fragment.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"
    class="com.google.android.gms.maps.MapFragment" />

MapFragment:

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;



public class MapFragment extends Fragment{

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View view = inflater.inflate(R.layout.map_fragment, container, false);

        GoogleMap map = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
    return view;


     }


}

行:

GoogleMap map = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

始终显示:

无法从 Fragment 转换到 SupportMapFragment

我不知道为什么会出现这个?我哪里错了?我已在 list 中提供了所有必需的权限,因为我可以在其他 Activity 中查看谷歌地图。

最佳答案

这是使用谷歌地图的最佳实践,尝试一下。

public class MapFragment extends Fragment implements OnMapReadyCallback{

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view = inflater.inflate(R.layout.map_fragment, container, false);

   // GoogleMap map = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
    MapFragment map = (MapFragment) getFragmentManager().findFragmentById(R.id.map);

    map.getMapAsync(this);
return view;


 }

@Override
public void onMapReady(GoogleMap googleMap) {
    //googleMap is your map

    googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);

    gm = googleMap;

    googleMap.setOnMarkerClickListener(this);

    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(Ancona, 5));
}

}

关于java - 无法在 fragment 内使用谷歌地图V2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29006458/

相关文章:

java - Netbeans 不同的返回值

java - SQLite 应用程序在显示数据时崩溃

java - 没有父 ID 作为外键的子表 - JPA/Hibernate

java - Helper 类中的计算问题 - 在计算之前返回值

google-maps - 谷歌地图嵌入错误缩放

ios - Google Maps iOS didTapInfoWindowOfMarker 在其他标记之上时未触发

java - 如何在不关闭服务器的情况下清除/删除所有 Weblogic 日志?

Android 自定义 Snackbar : can't remove margins

google-maps - Google 街景 map - 解析 url 以用作街道图像

Android 与 USB 到串行设备的通信和 controlTransfers