问题描述:TabHost切换Activity,每个activity中都包含一个高德地图,首次进入第一个显示的地图可以使用,切换到第二个时地图卡死不能操作。

 

解决办法:把MapView改成TextureMapView

1.把layout布局中的MapView改掉

<com.amap.api.maps.MapView
        android:id="@+id/activity_map_map"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

改成

<com.amap.api.maps.TextureMapView
        android:id="@+id/activity_map_map"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

2.把代码中的MapView改掉

 MapView mMapView;

改成

TextureMapView mMapView;

 

卡死的原因看了一圈博客,大概的意思是,原来的MapView继承的是SurfaceView,而SurfaceView在这种切换的情况下,第二个会变成透明的,卡死的现象实际就是在看见的地图上面还有一层透明的布局,这时候我们去点击和滑动的都是上面透明的布局,所以就感觉下面能看见的地图像卡死了一样,不能操作。

现在就知道个大概原因,等有机会再细研究。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐