所以我在片段类中有以下代码试图显示谷歌地图。即使成功检测到位置并进行了缩放,所有其他 UI 组件(例如位置按钮)都不会显示,并且地图也无法响应手势。问题是什么?
如果我尝试在膨胀之前调用 setupMap(),则地图显然还没有准备好,我使用 getMap 得到一个空指针。
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mMapFragment = MapFragment.newInstance();
FragmentTransaction fragmentTransaction =
getFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.map, mMapFragment);
fragmentTransaction.commit();
View v = inflater.inflate(R.layout.afragment, container, false);
setupMap();
// Inflate the layout for this fragment
return v;
}
我用以下内容设置了我的地图:
private void setupMap(){
if (mMap == null) {
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
//Set Location etc
........
mMap.getUiSettings().setAllGesturesEnabled(true);
mMap.getUiSettings().setMyLocationButtonEnabled(true);
mMap.getUiSettings().setZoomControlsEnabled(true);
mMap.getUiSettings().setZoomGesturesEnabled(true);
// Zoom in the Google Map
mMap.animateCamera(CameraUpdateFactory.zoomTo(14));
mMap.setOnMapClickListener(this);
}
}
}