我正在使用 api v2 在谷歌地图上工作,我添加了代码来显示地图并且可以工作,但我有两个问题,1.当显示地图然后设备被锁定时,解锁设备后调用片段的 onResume() 并且地图片段没有响应(我无法滚动或缩放它)。2.我在同一视图上也有一个按钮,点击该按钮打开邮件 intent.so 应用程序暂停,之后当用户移动到应用程序地图片段时是黑色的并且地图没有加载。
我已经尝试按照堆栈溢出帖子的建议设置android:hardwareAccelerated="false"
,但它对我不起作用。
我在oncreate中的代码是-
map = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
MarkerOptions marker = new MarkerOptions();
marker.position(myPosition);
marker.title(myTitle);
Marker locationMarker = map.addMarker(marker);
locationMarker.showInfoWindow();
map.moveCamera(CameraUpdateFactory.newLatLngZoom(myPosition, 15));
map.animateCamera(CameraUpdateFactory.zoomTo(15), 2000, null);
我也尝试使用-
ViewGroup parent = (ViewGroup) v.getParent();
if (parent != null)
parent.removeView(v);
并且还在我的 mapFragment 的 onResume() 中使用了以下代码 -
SupportMapFragment fragments = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map));
if(fragment!=null){
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.remove(fragments);
ft.commit();
}
请帮助我在哪里失踪。
创建一个私有函数,
private void initilizeMap() {
if (map == null) {
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(
R.id.map)).getMap();
// check if map is created successfully or not
if (map == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
}
@Override
protected void onResume() {
super.onResume();
initilizeMap();
}