Theme主题的使用及windowIsTranslucent的理解
为了解决app启动慢,黑白屏问题,所以开发中会用到自定义主题及 windowBackground 启动图
parent必须要添加,以及windowIsTranslucent要为false背景图才会显示,如果设为true,那么启动时app会等待activity 创建完成才会打开,影响体验
其次在application中,一般设置theme主题为系统Theme.AppCompat.NoActionBar之类主题
在android 8.0以上,如果首页跳转过快将会出现一些问题。
我的项目是,打开app后如果已经是登录过状态,立刻跳转到首页面。由于主页面(我的第二个要打开的activity)加载frament过慢,造成了第一个activity一闪而过,而windowbackground不结束的画面。
于是我开始在theme主题中找解决方案。
将application和activity的主题都设置为自定义主题,结果还是一闪而过的画面。
于是将两个theme主题中的windowIsTranslucent都设置为true,那么app启动时,将会是一个等待状态。
将application中的windowIsTranslucent设置为false,activity中的windowIsTranslucent设置为true,依然是一个等待打开状态。
将activity中的windowIsTranslucent设置为false,application中的windowIsTranslucent设置为true,第一个avtivity不再一闪而过,将等待第二个activity创建完成,再做跳转。
windowIsTranslucent属性,是将activity设置半透明的样式。如果设置为false,将显示theme主题的背景颜色。而第一个activity的windowbackgroud属性本应该是在activity启动以后结束,那为什么第一个activity已经开始要跳转,windowbackgroud还没有结束绘制,直到跳转到第二个activity才结束。又为什么application twindowIsTranslucent为true后,第一个activity出现时,第一个activity的windowbackgroud就结束了。
由于找不到相关答案,只能暂时理解为:当application设置windowIsTranslucent为false时,第一个activity跳转到第二个activity时,第二个activity不是透明状态,activity未完全创建完成,则用当前activity的windowbackground做当前页面,但跳转的动作已经完成,就是造成一闪而过的画面。当application设置windowIsTranslucent为true时,要跳转到的第二个activity为透明状态,所以当第二个activity未完全创建时,画面停留在当前界面,也就是第一个activity。待完成创建时跳转。
第一个activity常在各大app中作广告页使用。
当设置application的theme设置windowIsTranslucent为true时,看似一切正常了许多。但是在android8.0及以下版本,需要注意:
1.当Activity固定了方向。
2.“windowIsTranslucent”为true;
“windowSwipeToDismiss”为true;
“windowIsFloating“为true;
3.targetSdkVersion >26
如上三种情况将会造成Only fullscreen activities can request orientation"异常。最简单的办法把targetSdkVersion改成26或更低。
以上是为了解决app黑白屏以及android 8.0以上首页跳转过快出现的问题。
第二种解决方案:
事实上只要在跳转动作上做延迟操作,就不会造成第一个activity一闪而过的画面,还可以控制广告页时间,由于萌新不懂大佬的代码逻辑,走错方向,又执着于windowIsTranslucent属性,浪费了时间。可以用线程的sleep,handler,或者java定时器进行操作。
Theme主题的使用及windowIsTranslucent的理解相关推荐
- 从Hexo迁移到Hugo附送漂亮的Hugo Theme主题
从Hexo迁移到Hugo附送漂亮的Hugo Theme主题 自从Hugo出来后,作为Go语言(golang)的重度用户的重度用户,一直想把自己的博客迁移到Hugo,但是一直没有行动,主要原因在于,我的 ...
- 【Android进阶】14、theme 主题 和 menu 顶部应用栏
文章目录 14.1 theme 主题 14.2 menu 应用栏的菜单 14.2.1 在XML文件中定义菜单 14.2.2 创建菜单 14.2.3 响应菜单项选择 14.3 用 Android Ass ...
- 微软 theme 主题文件官方文档中文翻译版
这份文档将主要讨论Windows 7,Windows Vista和Windows XP中使用的主题文件(.theme)的语言格式.一个.theme文件实质上是一个分段记录特定桌面可视化效果设定的.in ...
- Style(风格) 和 Theme(主题)
当你设计你的程序的时候,你可以用Style(风格)和Theme(主题)来统一格式化各种屏幕和UI元素. 风格是一个包含一种或者多种格式化属性的集合,你可以将其用为一个单位用在布局XML单个元素当中.比 ...
- Eclipse设置Theme主题颜色
设置Eclipse的代码编辑区背景为暗黑色系: 如需转载,请注明转载自:blog.csdn.net/it1988888 相关文件下载:http://guari.github.io/eclipse-ui ...
- Jupyter lab Theme 主题更换
Jupyter lab Theme 主题更换 1. 打开Jupyter-lab 2. 再拓展插件中搜索 "theme" 3. 安装自己喜欢的主题 4. 在Setting->J ...
- Android中Theme主题和Style样式使用介绍总结
1.Theme主题 1.1.Theme主题作用范围 Theme主要是针对应用级别的或者说窗体级别,可以设置应用主题(应用换肤效果)和Activity的主题:主题是不能应用在某一个单独的View中:或者 ...
- Android常见的Theme主题
Android常见的Theme主题: android:theme="@android:style/Theme.Dialog" //Activity显示为对话框模式android:t ...
- PySimpleGui theme主题使用
第一章 PySimpleGui theme主题使用 目录 系列文章目录 前言 一.theme是什么? 二.使用步骤 1.打印所有主题: 2.主题设置 3.更新主题的设置 总结 前言 通过设置主题,可快 ...
最新文章
- 两个关于水花的测试。
- 在vscode中使用pylint-django插件解决pylint的一些不必要的错误提示【转】
- DeepMind让AI首次在量子水平描述物质!Nature:化学领域最有价值技术之一
- Hibernate的关联关系映射
- 二、Windows基础数据类型
- 网站服务器挂了导致排名下降,常见关键词排名消失的原因及解决对策
- 没用过.gitignore还敢自称高级开发?
- angular1.x 组件开发
- HALCON:内存管理(Memory Management)
- Unofficial Windows Binaries for Python Extensi...
- 地理探测器——Geodetector
- 计算机 ppt图标,史上最完整的通信计算机PPT图标及模版 (PPTshare).ppt
- 音乐格式转换软件测试工程师,免费音频转换器:如何把MP3文件转换为其他格式...
- Got10k追踪数据集
- airflow的xcom使用
- 雷军为什么要挖常程?
- 从前后端分离到前后端整合的“退步”(二)pom.xml文件配置
- p5.js创意绘图(2)自画像
- 类加载(基本说明、流程图、类加载各个阶段完成的任务)
- 使用EKF融合odometry及imu数据