onCreateView 返回 View 非 null,onDestroyView 清理地圖資源。| 現象 | 原因 | 修復 |
|---|---|---|
| 切換 Fragment 瞬間崩 | 地圖 View 未從父容器移除就銷毀 | onDestroyView 中 mapView.onDestroy() + (ViewGroup)mapView.getParent().removeView(mapView) |
| 部分手機地圖白屏 | SDK 版本過低,Android 4.4+ 存儲策略變更 | 升級至最新 SDK(官網下載),配置 meta-data AK |
| 重疊 Fragment 導致觸摸衝突 | 多層 Fragment 觸摸事件分發混亂 | 使用 FrameLayout + hide/show 替代 replace |
public class MapFragment extends SupportMapFragment {
@Override
public void onDestroyView() {
if (mapView != null) {
mapView.onDestroy();
ViewGroup parent = (ViewGroup) mapView.getParent();
if (parent != null) parent.removeView(mapView);
}
super.onDestroyView();
}
}
AndroidManifest 配置權限、AK、meta-data。build.gradle 引入最新 com.baidu.lbsyun:baidu-map-sdk:7.5.0。**Logcat 是第一生產力**,SDK 版本要跟上,Fragment 生命週期要對齊,百度地圖 Fragment 穩如磐石!