用过百度地图的人多很忧伤,各种bug, 已无力吐槽,最无语的可能就是会出现黑屏现象,比如一个Activity包含三个Fragment, 其中一个Fragment嵌套MapView使用,在切换这三个Fragment时会出现明显的黑屏,这个问题出现很久了,很早的SDK版本就存在,现在最新的SDK版本依然存在这个问题,解决方案如下:
问题分析:百度地图切换界面出现黑屏原因是地图退出释放内存时渲染出现bug导致,因为是百度地图本身内部bug,所以我们无法从本质上去修复这个bug, 但是我们bug的出现黑屏现象隐藏起来,即:将地图的释放过程放入后台进行,从而避免黑屏的出现。
1,在使用MapView的Fragment的onResume/onPause方法中手动调用设置view是否可见,具体如下:
@Override
protected void OnPause(){
mMapView.setVisibility(View.INVISIBLE);
mMapView.onPause();
super.onPause();
}
进入页面时
@Override
protected void onResume(){
mMapView.setVisibility(View.VISIBLE);
mMapView.onResume();
super.onResume();
}
2, Activity对应XML布局中单独使用一个View来替换嵌套有MapView的Fragment,需要显示该Fragment 时,设置该View为可见ÿ