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

我用的是高德的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:

    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" >

 

你可能感兴趣的:(错误记录)