解决部分android手机页面跳转的黑白屏、闪屏、显示桌面背景问题

  • 关于
    • 修改后的方案效果图
    • 问题思路及解决办法
    • 最终方案

关于

  今天在查看登录页面美观度的时候意外发现手上的oppo手机在页面跳转的时候会有明显的显示桌面背景的问题,先看一下有问题的页面跳转(此篇文章也会作为简易音乐博客系列之一):

修改后的方案效果图

  通过gif可以看到有一瞬间的手机背景的展示问题,当然了,黑白屏的问题在本文一开始就解决了:

 <!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item><item name="android:windowIsTranslucent">true</item><!--Android 5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色--><item name="android:statusBarColor" tools:ignore="NewApi">#00000000</item></style><style name="ThemeSplash" parent="Theme.AppCompat.Light.NoActionBar"><item name="android:windowTranslucentNavigation" tools:ignore="NewApi">true</item><!--解决部分手机隐藏状态栏顶部出现小黑条的问题--><item name="android:windowLayoutInDisplayCutoutMode" tools:ignore="NewApi">shortEdges</item><!--解决白屏问题--><item name="android:windowBackground">@color/colorAccent</item><item name="android:windowFullscreen">true</item><!--Android 5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色--><item name="android:statusBarColor" tools:ignore="NewApi">#00000000</item></style>

问题思路及解决办法

  上图gif里面总共三个页面,SplashActivity.javaLoginSelectActivity.javaLoginActivity.java,对应界面如下图:


  我还特意为此去学习了下如何使图片并排显示。
其中第一个SplashActivity.java是启动页面,对应上面的ThemeSplash样式,跳转LoginSelectActivity.java页面代码如下:

//ARouter路由ARouter.getInstance().build(Config.ROUTE_LOGINSELECT)//跳转到选择按钮页面.withFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK).navigation(SplashActivity.this);finish();

  想着是不是因为跳转的时候清空了栈,导致页面是从桌面启动的,去掉Intent.FLAG_ACTIVITY_CLEAR_TASK标签:

//ARouter路由ARouter.getInstance().build(Config.ROUTE_LOGINSELECT)//跳转到选择按钮页面.withFlags(Intent.FLAG_ACTIVITY_NEW_TASK).navigation(SplashActivity.this);finish();

  修改了之后还是显示了桌面背景,继续修改,想着给AppTheme添加一个不透明的背景呢,修改如下:

 <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item><item name="android:windowIsTranslucent">true</item><!--解决页面跳转的状态栏白屏问题--><item name="android:windowBackground">@color/colorAccent</item><!--Android 5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色--><item name="android:statusBarColor" tools:ignore="NewApi">#00000000</item></style>

  修改跳转代码:

 ARouter.getInstance().build(Config.ROUTE_LOGINSELECT)//跳转到选择按钮页面.withFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK).navigation(SplashActivity.this);//去掉finish();方法 因为跳转过程中销毁了前一个页面,导致页面显示了透明背景即显示了手机桌面背景

最终方案

  贴下最终完整代码吧,首先是样式styles.xml:

<resources xmlns:tools="http://schemas.android.com/tools"><!-- Base application theme. --><style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"><!-- Customize your theme here. --><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item><item name="android:windowIsTranslucent">true</item><!--解决页面跳转的状态栏白屏问题--><item name="android:windowBackground">@color/colorAccent</item><!--Android 5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色--><item name="android:statusBarColor" tools:ignore="NewApi">#00000000</item></style><!--启动页样式--><style name="ThemeSplash" parent="AppTheme"><item name="android:windowTranslucentNavigation" tools:ignore="NewApi">true</item><!--解决部分手机隐藏状态栏顶部出现小黑条的问题--><item name="android:windowLayoutInDisplayCutoutMode" tools:ignore="NewApi">shortEdges</item><item name="android:windowFullscreen">true</item></style></resources>

SplashActivity的跳转:

ARouter.getInstance().build(Config.ROUTE_LOGINSELECT)//跳转到选择按钮页面.withFlags(Intent.FLAG_ACTIVITY_NEW_TASK).navigation(SplashActivity.this);overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);//转场动画

解决部分android手机页面跳转的黑白屏、闪屏、显示桌面背景问题相关推荐

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

    小菜在适配 Android8.0 过程中,遇到很多问题,有很多很常见的问题,今天来整理一下页面跳转时黑屏的问题. 问题猜测 猜测一: 显示 Activity 页面之前会优先开启一个 Starting ...

  2. Android实现页面跳转

    一. Android实现页面跳转有两种方式,一种为.MainActivity跳转:第二种是Relatelayout布局跳转,首先看第一种方式 1. MainActivity区域设置 public cl ...

  3. 计算机启动后有微软标志但不能进入桌面,电脑开机显示桌面背景却无法进入系统的原因及解决办法...

    最近,有两个朋友的计算机出现问题了,启动计算机,能显示桌面背景,但是长久未看到计算机桌面图标,按键盘任何键都无响应! 第一反映即是计算机中病毒了! 俺什么都没多想,立马恢复操作系统! 呵呵,情况实在是 ...

  4. android webview加载闪屏,Android Webview:加载url时出现闪屏

    我是Android应用程序中的新手,这是我的第一个应用程序. 我已经创建了启动画面和工程..但其后走了一个长长的白色空白屏幕约2-5秒,然后URL开始加载..Android Webview:加载url ...

  5. win10黑屏闪屏如何解决?

    当win10黑屏闪屏时,如何解决 最近,答主为了让电脑加快运行速度,用了360手贱的把系统的一个关键部位给禁止启动了,导致了,开机一直处于在黑屏闪屏的状态,无桌面,按任务管理器也没反应,然后我就重启电 ...

  6. 实现android多页面跳转,获取数据操作

    准备工具:安卓开发工具 实现页面效果: 1.第一页面:要求停留三秒跳转第二页面 2.第二页面,要求:获取输入的数据点击确定按钮跳转第三页面并数据传入第三页面 3.第三页面:要求:接收第二页面数据显示在 ...

  7. Android intent 页面跳转

    slidemenu_layout 部分列表(点击帮助跳转到user_help_layout.xml页面) //slidemenu_layout.xml <?xml version="1 ...

  8. android h5页面跳转,android H5 应用内跳转Scheme协议

    什么是URL Scheme 概述: android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面:通过scheme协议 ...

  9. Android 学习(四)——Android Studio 页面跳转

    一.显式意图跳转 1.设置按键(参考第三次作业:设置按键的三种基本方式) 2.新建Activity2 3.按键侦听,设置页面跳转 Intent intent = new Intent(this,Mai ...

最新文章

  1. malloc和free实现的原理
  2. Nginx相关 解决nginx反向代理后页面上的js/css文件无法加载
  3. 微信又出隐藏“技能”,一夜之间朋友圈刷屏了
  4. oracle 获取执行时间间隔,Oracle获取某一段时间间隔之后的日期
  5. 直方图 帕累托图_工具讲解 | 用Excel绘制帕累托图
  6. 单片机控制电机原理以及程序怎么写
  7. 总结一下网站注入与防范的方法
  8. JAVA SE、JAVA EE、JAVA ME的联系与区别
  9. 无人机——凤凰模拟器篇(四)图文安装教程(附软件下载)
  10. 大学计算机系最努力的同学都是如何学习的?
  11. Matlab中pickic_MATLAB中uigetfile命令的应用
  12. SAP的系统审计以及SM19的使用
  13. 摸鱼神器 Thief-Book
  14. 微信小程序入门(一)微信小程序注册申请
  15. Solr Tokenizers分词器介绍
  16. Multiple View Geometry(多视图几何)学习笔记(23)—射影摄像机对二次曲面的作用摄像机中心的重要性
  17. Speedoffice(word)如何插入文字水印
  18. 到底要学前端还是后端?
  19. 高斯-约当(Gauss-Jordan)消元法
  20. php函数 去空格,php删除空格函数是什么

热门文章

  1. 公司考勤系统 功能和代码
  2. 美团二面:如果每天有百亿流量,你如何保证数据一致性?
  3. count(*)和count(1)
  4. 支付宝生活圈即将上线
  5. Win系统电脑无法连接iPhone热点问题的检测流程
  6. 【工具类库】Lombok简介、使用、工作原理、优缺点--最全一篇Lombok使用讲解及原理真香啊
  7. 项目管理工具dhtmlxGantt甘特图入门教程(九):支持哪些数据格式(上篇)
  8. zigbee协议栈之中终端绑定
  9. openGPS.cn - 高精度IP定位
  10. 我常用之呼和浩特快递联系电话(顺丰、申通、圆通 转)