解决部分android手机页面跳转的黑白屏、闪屏、显示桌面背景问题
解决部分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.java
、LoginSelectActivity.java
、LoginActivity.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手机页面跳转的黑白屏、闪屏、显示桌面背景问题相关推荐
- android 跳转动画黑屏,Android8.0 适配解决页面跳转过程出现短暂黑屏的问题
小菜在适配 Android8.0 过程中,遇到很多问题,有很多很常见的问题,今天来整理一下页面跳转时黑屏的问题. 问题猜测 猜测一: 显示 Activity 页面之前会优先开启一个 Starting ...
- Android实现页面跳转
一. Android实现页面跳转有两种方式,一种为.MainActivity跳转:第二种是Relatelayout布局跳转,首先看第一种方式 1. MainActivity区域设置 public cl ...
- 计算机启动后有微软标志但不能进入桌面,电脑开机显示桌面背景却无法进入系统的原因及解决办法...
最近,有两个朋友的计算机出现问题了,启动计算机,能显示桌面背景,但是长久未看到计算机桌面图标,按键盘任何键都无响应! 第一反映即是计算机中病毒了! 俺什么都没多想,立马恢复操作系统! 呵呵,情况实在是 ...
- android webview加载闪屏,Android Webview:加载url时出现闪屏
我是Android应用程序中的新手,这是我的第一个应用程序. 我已经创建了启动画面和工程..但其后走了一个长长的白色空白屏幕约2-5秒,然后URL开始加载..Android Webview:加载url ...
- win10黑屏闪屏如何解决?
当win10黑屏闪屏时,如何解决 最近,答主为了让电脑加快运行速度,用了360手贱的把系统的一个关键部位给禁止启动了,导致了,开机一直处于在黑屏闪屏的状态,无桌面,按任务管理器也没反应,然后我就重启电 ...
- 实现android多页面跳转,获取数据操作
准备工具:安卓开发工具 实现页面效果: 1.第一页面:要求停留三秒跳转第二页面 2.第二页面,要求:获取输入的数据点击确定按钮跳转第三页面并数据传入第三页面 3.第三页面:要求:接收第二页面数据显示在 ...
- Android intent 页面跳转
slidemenu_layout 部分列表(点击帮助跳转到user_help_layout.xml页面) //slidemenu_layout.xml <?xml version="1 ...
- android h5页面跳转,android H5 应用内跳转Scheme协议
什么是URL Scheme 概述: android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面:通过scheme协议 ...
- Android 学习(四)——Android Studio 页面跳转
一.显式意图跳转 1.设置按键(参考第三次作业:设置按键的三种基本方式) 2.新建Activity2 3.按键侦听,设置页面跳转 Intent intent = new Intent(this,Mai ...
最新文章
- malloc和free实现的原理
- Nginx相关 解决nginx反向代理后页面上的js/css文件无法加载
- 微信又出隐藏“技能”,一夜之间朋友圈刷屏了
- oracle 获取执行时间间隔,Oracle获取某一段时间间隔之后的日期
- 直方图 帕累托图_工具讲解 | 用Excel绘制帕累托图
- 单片机控制电机原理以及程序怎么写
- 总结一下网站注入与防范的方法
- JAVA SE、JAVA EE、JAVA ME的联系与区别
- 无人机——凤凰模拟器篇(四)图文安装教程(附软件下载)
- 大学计算机系最努力的同学都是如何学习的?
- Matlab中pickic_MATLAB中uigetfile命令的应用
- SAP的系统审计以及SM19的使用
- 摸鱼神器 Thief-Book
- 微信小程序入门(一)微信小程序注册申请
- Solr Tokenizers分词器介绍
- Multiple View Geometry(多视图几何)学习笔记(23)—射影摄像机对二次曲面的作用摄像机中心的重要性
- Speedoffice(word)如何插入文字水印
- 到底要学前端还是后端?
- 高斯-约当(Gauss-Jordan)消元法
- php函数 去空格,php删除空格函数是什么