我正在使用Google地图api进行谷歌地图,地图即将进行分段,但每当我尝试创建地图实例但我的谷歌地图变量显示为空。
//this is my class extends android.support.v4.app.Fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
MapView mapView;
view=inflater.inflate(R.layout.location, container, false);
if (map == null)
{
mapView = (MapView) view.findViewById(R.id.googlemapfragment1);
mapView.onCreate(savedInstanceState);
if(mapView!=null)
{
map = mapView.getMap();
map.getUiSettings().setMyLocationButtonEnabled(false);
map.setMyLocationEnabled(true);
map.getUiSettings().setZoomControlsEnabled(true);
}
if(map!=null)
{
Log.e("not null","not null");
}
}
return view;
}
xml文件是这样的
<fragment
android:id="@+id/googlemapfragment1"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/spinner1" />
</RelativeLayout>
答案 0 :(得分:0)
我认为您应该使用新引入的方法以异步方式获取地图。尝试使用
SupportMapFragment mapView = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.googlemapfragment1);
mapView .getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap arg0) {
map = arg0;
map.getUiSettings().setMyLocationButtonEnabled(false);
map.setMyLocationEnabled(true);
map.getUiSettings().setZoomControlsEnabled(true);
}
});
如果您无法看到该方法,请更新您的Google Play服务。