解决Fragment中使用地图,切换会闪一下黑屏的问题

本文详细介绍了在使用高德和百度地图API时遇到的地图加载黑屏问题的解决方案。通过调整窗口格式、启用硬件加速、修改MapView可见性及更换地图控件等方法,有效解决了地图加载时出现的黑屏现象。

我用的是高德的3D地图,用2D地图无此问题。

解决方法是,在使用到地图的Activity中的onCreate中添加以下代码:

getWindow().setFormat(PixelFormat.TRANSLUCENT);

另外有群友提到一种方法,也发一下吧:

  1. 最佳做法是在activity 的 root view 里面 加入一个 长宽都是0px的 不可见 SurfaceView元素

 

实际项目中为了方便,直接开启硬件加速也可以解决问题

android:hardwareAccelerated="true"

 

如果是百度地图,可以参考以下方案

1,在activity种的onCreate()方法中设置窗口透明度。

public void onCreate(Bundle savedInstanceState) {
    //避免加载地图黑屏
    getWindow().setFormat(PixelFormat.TRANSLUCENT);
    super.onCreate(savedInstanceState);
}
2,如果问题没有得到解决,手动在fragment的onResume()、onPause()方法中手动添加可视状态:

@Override
public void onResume() {

   mMapView.setVisibility(View.VISIBLE);
   mMapView.onResume();
super.onResume();
}
@Overridepublic void onPause() { mMapView.setVisibility(View.INVISIBLE); mMapView.onPause(); super.onPause();}
3,如果还为得到解决,可以尝试替换地图控件,可以把MapView换成TextureMapView:

<com.baidu.mapapi.map.TextureMapView
    android:id="@+id/bmapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:clickable="true" >
</com.baidu.mapapi.map.TextureMapView>
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenhuakang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值