Activity 跳转间出现短暂黑屏问题

activity跳转间会出现短暂黑屏,此时可能会出现以下三张情况。


1.activity页面加载数据过多,导致的短暂黑屏现象;

2.PopupWindow控件引起的短暂黑屏现象;

3.跳转或被跳转的avtivity启动模式为launchMode==“singleInstance”;


解决办法:


情况1或者3:

  your_project/res/values/styles.xml中加入自定义Activity的Theme,然后引入你的Activity中:      

         <!-- Activity主题 --> 

        <style name="activityTheme" parent="@android:style/Theme"> 

           <item name="android:windowIsTranslucent">true</item> //此句是重点

         </style>


    这样在跳转加载页面时,会先加载透明页,等数据加载出来后,才显示页面,解决黑屏为题,也可以不设置透明,而是加载透明的背景页,两者比较前者给用户的感觉慢了一点,后者则很快。


情况2

    在你所有设置了透明度的地方,调用下面这个方法,即可。

/**
 * 设置之后,防止activity跳转间出现黑屏问题
 *
 * @param bgAlpha
    */
public void backgroundAlpha(float bgAlpha)
{
   WindowManager.LayoutParams lp = getWindow().getAttributes();
   lp.alpha = bgAlpha;
   if (bgAlpha == 1) {
      getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,可能出现黑屏的bug
   } else {
      getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug
   }
   getWindow().setAttributes(lp);
}





  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值