解决高德地图闪屏黑屏

之前做高德地图,把地图嵌套在fragment里面。高德其实不推荐说嵌套在fragment里面,

TextureMapView性能是没有MapView好的。
但是项目需要,只能那么做的。其实我framgment切换是没有问题的,但是我有一个SlidingMenu的功能,使用
SlidingMenu就会出现闪屏黑边
地图如果是3d的则会闪屏,但是2d的就不会了。
有人说把getWindow().setFormat(PixelFormat.TRANSLUCENT)加在activity可以解决,但是我试了是没有效果的。
闪屏的原因是因为高德地图绘制的速度大于UI的绘制速度(网上看的,不知道有没有说错)
MapView替换成TextureMapView正常是可以解决闪屏(但是我的是没有解决,我不知道怎么回事)
检查下fragment是用什么方法切换的。如果是用replace,那就换成hide和show。因为replace会替换fragment,然后重新执行生命周期,地图又会绘制一遍。
正常用hide和show是可以解决的。
我之前是这么写的
final FragmentTransaction tf =
        getSupportFragmentManager().beginTransaction();
// 实例化Fragment页面
HomeFragment fragment = new HomeFragment();
// 替换当前的页面
fragmentTransaction.replace(R.id.frame_content, fragment);
// 事务管理提交
fragmentTransaction.commitAllowingStateLoss();

修改后
if (fragmentSpace != null) {
    tf.hide(fragmentSpace);
}
if (fragmentAt != null) {

    tf.hide(fragmentAt);
}
if (mHomeFragment == null) {
    mHomeFragment = new HomeFragment();
    tf.add(R.id.frame_content, mHomeFragment);
} else {
    tf.show(mHomeFragment);
}
tf.commitAllowingStateLoss();

如果还是有闪黑边的话,试着在地图控件里面加入
android:layout_marginLeft="-80dp"
只是让黑边隐藏,但是不能决定黑边的问题。

也有人说用高德地图的截图功能,然后
SlidingMenu开启的时候截屏,利用截屏的功能把黑屏,黑屏遮盖。我试过了,黑屏黑边是可以解决,但是截图的时候还是会闪屏。不知道是不是我的手机问题。
fragment和地图本身就不是很兼容。
这些方法要是没有办法解决,去看看地图的sdk是不是最新版,升级最新版一般都是可以解决。
我是用了以上的方法,加上地图最新的sdk。解决了闪屏黑屏黑边的问题。




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值