Fragment嵌套高德地图,当再次进入Fragment的时候,会出现奇怪的现象。嵌套的地图会出现无法定位的现象。这个问题出现的原因在于,fragment在被移除时,不会执行onDestroy()方法,而是执行onDestroyView()方法。fragment中的数据已经在第一次操作时完成了初始化了,所以以下代码中,aMap不为null。故无法正常开启定位功能。
依据demo源代码:
private void init() { if (aMap == null) { aMap = mapView.getMap(); setUpMap(); } }
改成:
private void init() { if (aMap == null) { aMap = mapView.getMap(); setUpMap(); }else{ aMap.clear(); aMap.setLocationSource(this); // amap.getUiSettings().setMyLocationButtonEnabled(false); // amap.getUiSettings().setZoomControlsEnabled(false); aMap.setMyLocationEnabled(true); aMap = mapView.getMap(); setUpMap(); } }对定位服务进行重新开启,即可。
原文:http://blog.csdn.net/zhilonng/article/details/51775976