最近的项目中,fragment中嵌套了高德地图,但切换后,高德地图会闪一下,多切换几次后,高德地图就白屏了,百度搜索了很多,有很多方法,都试了,没有卵用,MDZZ,没有用,能不能别发出来,欺骗别人感情。最终还是在高德地图官方文档中找到解决方法。
地址是: https://lbs.amap.com/dev/demo/map-fragment#Android
因为一开始,我使用的是map,而非TextureMapView。导致都会刷新下。
官方解释是:
示例中的地图用采用TextureMapView,TextureMapView可以有效实现Fragment切换动画效果。
Fragment切换时采用replace()方法,也可以采用hide()/show()方法。如果采用hide()/show()方法切换,地图是叠在一起的,GlSurfaceView叠放会出现穿透现象,建议使用TextureMapView避免这个问题。同时,采用TextureMapView,也可以避免Fragment切换动画时出现的黑边问题,或者是replace时有黑屏闪一下的问题。
MapView和TextureMapView的区别是:TextureMapView由TextureView实现,而MapView是通过GLSurfaceView实现的。
小建议:由于MapView的效率较高,在平常的地图使用中,建议您还是使用MapView。如果对页面切换动画等要求较高可以考虑采用Fragment实现。