小菜在适配 Android8.0 过程中,遇到很多问题,有很多很常见的问题,今天来整理一下页面跳转时黑屏的问题。

问题猜测

猜测一:

显示 Activity 页面之前会优先开启一个 Starting Window(Preview Window),等待 Activity 加载完成之后显示 UI 界面,猜测在这个等待过程中可能会出现页面跳转时的短暂黑屏。

猜测二:

小菜的 BaseActivity 页面中在 onCreate() 和 finish(),方法中添加了进入页面和退出页面时的动画效果,猜测可能是动画效果不兼容引起页面跳转时的短暂黑屏。

@Override

public void onCreate(Bundle savedInstanceState) {

if (toggleOverridePendingTransitionStart()) {

overridePendingTransition(R.anim.slide_right_in, 0);

}

super.onCreate(savedInstanceState);

}

@Override

public void finish() {

super.finish();

BaseAppManager.getInstance().removeActivity(this);

if (toggleOverridePendingTransitionFinish()) {

overridePendingTransition(0, R.anim.slide_right_out);

}

}

尝试解决

优先尝试修改主题样式,小菜前段时间整理 解决 Android 升级 SDK API 27 过程中遇到的问题 中有一个 Only fullscreen opaque activities can request orientation 问题,对于透明或半透明页面,Android8.0 需要将主题中的 android:windowActionBar 属性设为 false;小菜理解这个属性设为 true 是设置本页面为透明页面,小菜以为如果去掉相当于省略这个过渡效果,等待 1-2s 时间进入新页面;测试在小菜的 Android8.0 应用里面依旧会出现跳转短暂黑屏现象,故尝试方式一失败!

再次尝试修改主题样式,以为万能的添加主题背景图,设置主题 windowBackground,小菜以为添加一张透明背景图就可以解决;测试在小菜的应用背景图是有的,但还是会出现跳转短暂黑屏现象,故尝试方式二失败!

false

false

@null

@drawable/background_splash

@null

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

小菜担心页面中会有其他因素影响,新建一个 AppCompatActivity 进行测试,以上两种方法均不会出现黑屏问题;因此小菜开始考虑 overridePendingTransition 动画效果的影响,把 BaseActivity 中的动画效果去掉;测试一切正常,没有出现短暂黑屏现象,因此确定是 overridePendingTransition 问题;

小菜测试发现是在 Android8.0 中 overridePendingTransition 若设为进入和进出为 0 时会出现黑屏,解决方案是:将 0 换为固定的进入和退出的 anim 即可,如下:

// 原来

overridePendingTransition(R.anim.slide_right_in, 0);

// 替换为

overridePendingTransition(R.anim.slide_right_in, R.anim.slide_right_out);

// 原来

overridePendingTransition(0, R.anim.slide_right_out);

// 替换为

overridePendingTransition(R.anim.slide_right_in, R.anim.slide_right_out);

Tip:若只想有进入或退出时的动画,另一个动画去掉呢,可以自定义个 no_anim,替换上即可:

android:duration="0">

// 原来

overridePendingTransition(0, R.anim.slide_right_out);

// 替换为

overridePendingTransition(R.anim.no_anim, R.anim.slide_right_out);

插曲总结

overridePendingTransition 第一个参数为页面进入时动画,第二个参数为页面退出时动画,不要记反了;

小菜的 BaseActivity 是在 onCreate() 和 finish() 中分别调用 overridePendingTransition 的,所以想调整个别页面其他动画效果时,需要在 onCreate() 和 finish() 方法中方分别定义。

至此,小菜的应用在 Android8.0 中页面跳转短暂黑屏问题已解决,测试正常;小菜发现在优化和适配的道路上还有很多意想不到的问题,随时调整随时记录,希望可以顺利解决!

来源: 阿策小和尚

android 跳转动画黑屏,Android8.0 适配解决页面跳转过程出现短暂黑屏的问题相关推荐

  1. Android 8.0 学习(14)---Android8.0适配分析

    公司项目Android8.0适配分析 1. 官方推荐的兼容测试方式  2. Android8.0行为变更说明  Android 8.0 行为变更包括两个部分:针对所有 API 级别的应用和针对 And ...

  2. js请求返回一个页面html页面跳转页面,JS cookie操作 解决页面跳转返回

    在HTML中,页面跳转后,js和HTML都会刷新,这样数据就会初始化,如果要解决页面跳转互传数据,可以考虑cookie. 对于页面跳转,然后页面返回等一系列操作,cookie中数据模拟堆栈出栈可以实现 ...

  3. 【Vue2.0】—解决页面闪烁的问题(八)

    [Vue2.0]-解决页面闪烁的问题(八) v-cloak指令(没有值) 1.本质上是一个特殊属性,Vue实例创建完毕并接管容器后,会删掉v-cloak属性 2. 使用css配合v-cloak可解决网 ...

  4. django解决页面跳转问题

    django解决页面跳转问题 参考文章: (1)django解决页面跳转问题 (2)https://www.cnblogs.com/studong/p/9181524.html 备忘一下.

  5. nwjs解决页面透明化,启动时显示白屏的问题

    nwjs解决页面透明化,启动时显示白屏的问题 参考文章: (1)nwjs解决页面透明化,启动时显示白屏的问题 (2)https://www.cnblogs.com/jinling/p/6068918. ...

  6. android烤机按键变慢,Android8.0平台Camera monkey拷机卡死异常

    Android8.0平台Camera monkey拷机卡死异常 最近在处理一个camera monkey拷机卡死的问题,卡死在停止录像的画面. monkey测试命令 monkey -p com.and ...

  7. android 强制打开gps定位_Android 6.0动态权限及跳转GPS设置界面的方法

    1.动态权限申请 模糊的位置信息android.permission.ACCESS_COARSE_LOCATION权限为例 在AndroidManifest文件中加入权限 然后java代码中动态申请 ...

  8. Android8.0适配那点事(二)

    小伙伴们,咱们今天咱继续对Android8.0的适配进行分解,今天将针对启动页,版本适配和系统限制等进行"啃食" 1.启动页适配 近日,我无意中发现应用在8.0系统上面启动页崩溃, ...

  9. Android8.0适配方案

    准备工作 将我们项目中的targetSdkVersion改为 26(8.0) 或者 27(8.1) 1运行时权限 首先引用官方的原文. https://developer.android.google ...

最新文章

  1. 重磅!腾讯发布AI生态计划将赋能1000合作伙伴!
  2. 网路游侠:某厂家新发布的数据销毁工具
  3. 华为云FusionInsight+永洪BI共建政企用数之道,普惠千行百业
  4. 【Python基础】入门Pandas不可不知的技巧
  5. 阿里云大数据计算服务MaxCompute命令行工具——odpscmd的操作使用
  6. C程序对整数中设置为1的位数进行计数
  7. Win11系统如何解除网络限制
  8. php的错误是什么原因,php异常和错误的区别是什么
  9. 江西 高职 分数 计算机,快讯!江西高职(专科)批次各高校投档分数线出炉…...
  10. 哈工大2015秋 编译原理课程实验1:词法分析
  11. MonkeyTest——简单无脑的移动端自动化测试(初级篇)
  12. php设置时区的两种方法
  13. Mac配置docker镜像源
  14. 【图片按钮】在微信小程序中实现图片按钮
  15. 2021年材料员-通用基础(材料员)考试试题及材料员-通用基础(材料员)作业模拟考试
  16. EWSTM8系列教程03_主窗口、工具栏的概述
  17. 小度机器人小胖机器人_小度机器人怎么升级?智能机器人百小度快速升级全攻略[多图]...
  18. 华为鸿蒙应用名称,国产自主系统名字定了 华为鸿蒙商标已注册公告
  19. 游戏服务器 c语言,C++游戏服务器编程从入门到掌握视频教程(全)
  20. c语言将英文月份转化为数字,用C语言进行数值月份向英文月份的转换 为什么输入两位数的月份只能识别第一个数字 求解答!!...

热门文章

  1. SpringBoot官方热部署和远程调试神器,真带劲!
  2. Java对象都是在堆上分配空间吗?答案竟然是...
  3. 第十章数据库恢复技术
  4. 一起玩Docker之1——Ubuntu配置安装Docker运行环境并安装(Ubuntu、Centos)镜像
  5. 蓝桥杯试题 算法提高 数组求和
  6. 复习----使用链表实现队列(先进先出)及迭代
  7. 线程池三种队列使用,SynchronousQueue,LinkedBlockingQueue,ArrayBlockingQueue
  8. 在网络上提供资源的计算机,在计算机网络中通常把提供并管理共享资源的计算机称为...
  9. c语言 1 %3c%3c -253,结构体嵌套 姓名前后怎么输出两次??
  10. android按钮旋转,单击一个按钮在android中顺时针旋转图像