百度地图 Fragment之间切换黑屏现象解决方案

用过百度地图的人多很忧伤,各种bug, 已无力吐槽,最无语的可能就是会出现黑屏现象,比如一个Activity包含三个Fragment, 其中一个Fragment嵌套MapView使用,在切换这三个Fragment时会出现明显的黑屏,这个问题出现很久了,很早的SDK版本就存在,现在最新的SDK版本依然存在这个问题,解决方案如下:

1,在使用MapView的Fragment的onResume/onPause方法中手动调用设置view是否可见,具体如下:

@Override
protected void OnPause(){
    mMapView.setVisibility(View.INVISIBLE);
    mMapView.onPause();
    super.onPause();
}

进入页面时

@Override
protected void onResume(){
        mMapView.setVisibility(View.VISIBLE);
        mMapView.onResume();
        super.onResume();
}

2, Activity对应XML布局中单独使用一个View来替换嵌套有MapView的Fragment,需要显示该Fragment 时,设置该View为可见,不使用时设置为不可见。

  <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <FrameLayout
            android:id="@+id/mapFrameLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        </FrameLayout>

        <FrameLayout
            android:id="@+id/otherFrameLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="invisible" >
        </FrameLayout>
    </FrameLayout> 

3,整个Activity生命周期中使用同一个嵌套有MapView的Fragment 对象,不用重复new实例,   这是最关键的。

Demo工程下载地址:http://download.csdn.net/detail/easyer2012/8968903

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-19 21:45:57

百度地图 Fragment之间切换黑屏现象解决方案的相关文章

MapView 和ViewPager Fragment切换黑屏问题解决方案

在项目中使用的是高德地图,放置MapView的Fragment和其他Fragment放置一个ViewPager中切换:当从MapView的Fragment切换到其他Fragment或者从其他Fragment切换到MapView就会产生闪黑边.网上有说什么设置白色背景或者设置Activity style透明.经尝试设置Activity style透明是可以解决闪黑边问题的,但是Activity透明后会看到Launcher桌面.所以这种方式也是的. 我通过修改ViewPager的过渡方式完美解决闪黑

【Android】去除应用启动时黑屏现象

http://www.eoeandroid.com/blog-1169143-47979.html 在AndroidManifest里面定义的时候,在启动的Activity,添加android:theme="@android:style/Theme.Translucent",就不会出现黑屏现象了

Ionic2使用百度地图API(JS)出现白屏解决方案

最近自学ionic2,写了一个内嵌百度地图JS的demo,实际跑起来之后出现了大家常见的白屏问题.. 最初的实现是这样的: 首先主页内嵌了一个百度地图插件 <div id="Bmap" style="width: 100%;height: 100%"> 之后menu中一个引导的子页面也内嵌了一个百度地图 <div id="Bmap" style="width: 100%;height: 100%"> 然

Activity 切换黑屏

做盒子项目的时候,碰到一个非常影响用户体验的问题,就是切换Activity 出现黑屏. 在默认情况下,Android应用程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初 始化列表数据.向服务器发送请求获取数据等等. 使用startActivity(intent)方法从一个Activity进入到新的 Activity时,这个过程中也会出现短暂的黑屏.这个问题的存在是由Android应用框架决定的,但的确很影响用户体验.下面就动手来解决这个黑屏 问题! 第一步:自定

ORACLE 11g安装中vnc viewer黑屏现象

1,vnc viewer黑屏问题: 2,可能是centos下面的桌面组件没有安装好 yum groupinstall "X WindowSystem" "KDE Desktop" Desktop -y yumgroupinstall -y   "Desktop"   "DesktopPlatform"   "Desktop Platform Development" "Fonts" &q

Android启动页黑屏的解决方案

一般APP启动都会显示一个白屏或者黑屏的页面,再跳到欢迎页,这样子的体验效果不好.这到底是怎么回事呢?要如何解决它呢?今天我们来分析下它产生的原因,以及解决方案. 1.产生原因 当系统启动一个APP时,zygote进程首先会创建一个进程去执行这个APP,但是创建进程是需要时间的,用户点击后以为没响应会再次点击,这样的体验效果不佳.为了解决这种迷之尴尬,Android系统会根据你的manifest中设置的主体颜色来显示一个白屏或者黑屏,它的正式称呼是Preview window,即预览窗口. 2.

cocosjs--h5游戏能正常渲染一点屏幕就黑屏的解决方案

做项目过程中遇到这样的问题,使用cocosjs做项目,做好了打包发布项目,在手机中运行游戏, 刚进游戏能正常渲染出画面,一触摸屏幕就黑屏,且没有报任何异常,解决方案如下, 找到CCScreen.js文件,在frameworks\cocos2d-html5\cocos2d\core\platform目录下, 将init函数中的一句代码注释掉,行数在第95行,注释完后就解决问题了 https://blog.csdn.net/zlqqhs/article/details/52151704 原文地址:h

移动端(手机)禁止黑屏问题解决方案

最近有朋友问关于手机端设置屏幕常量的问题,以前我也遇到过.一般这个问题可以通过调用Unity内置的API直接解决,代码如下: Screen.sleepTimeout = SleepTimeout.NeverSleep; 如果考虑兼容unity产品多平台发布的需求以及考虑unity脚本的生命周期问题,个人建议增加"预编译指令"然后定义在Awake函数中,则代码的健壮性会更好,完整代码如下: private void Awake() { #if UNITY_ANDROID || UNITY

多个fragment之间切换加载数据卡顿

Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在这个activity刚创建的时候就变成需要初始化大量资源.有可能会导致卡顿. 就需要用到Fragment里的setUserVisibleHint这个方法里. 解决办法 package com.xgs.panku.ui; import android.app.Fragment; /** * 类描述:当切换到这个fragment的