Android启动出现白屏的解决办法(theme)-阿里云开发者社区

开发者社区> :br阶乘> 正文

Android启动出现白屏的解决办法(theme)

简介: 安卓启动时出现白屏,是因为在执行onCreate时占用了时间。而使用setContentView又一定要放在onCreate中,setContentView本身,就需要占用时间,所以这个白屏无法从根本上消除。
+关注继续查看

安卓启动时出现白屏,是因为在执行onCreate时占用了时间。而使用setContentView又一定要放在onCreate中,setContentView本身,就需要占用时间,所以这个白屏无法从根本上消除。


这个白屏是由activity的theme项来决定,学名Preview,,消除的方法,是继承系统给定的样式,添加

1
<item name="android:windowDisablePreview">true</item>

禁用其预览页。。


当然,也可以通过

1
<item name="android:windowBackground"></item>

来指定显示的背景页。


全部继承方式距离

1
2
3
4
<style name="AppTheme" parent="AppBaseTheme">
    <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    <item name="android:windowDisablePreview">true</item>
</style>



注意:如果通过windowsBackground设置背景图后,在以后设计布局的时候,如果你没有给某个区域指定背景色,那么该区域默认透明,将会将背景图透视到前台。


在补充几个继承或者自定义主题时有用的Theme项,,(取自themes.xml)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//    背景图
<item name="windowBackground">@android:drawable/dark</item> 
//    前景图
<item name="windowFrame">@null</item> 
//    是否展示标题
<item name="windowNoTitle">false</item> 
//    是否全屏
<item name="windowFullscreen">false</item> 
//    是否为悬浮窗
<item name="windowIsFloating">false</item>  
//    是否显示用户的壁纸
<item name="windowShowWallpaper">false</item>  
//    动画样式(说白了就是activity切换的动画)
<item name="android:windowAnimationStyle"></item>
1
2
3
//    让背景透明,
//        在activity左右滑动时,划出区域显示下方的窗口
<item name="android:windowIsTranslucent">true</item>

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
docker介绍与安装
docker介绍与安装
10 0
计算机基础3 | 学习笔记
快速学习计算机基础3。
12 0
正则表达式基础 | 学习笔记
快速学习正则表达式基础。
15 0
【大数据组件】一篇文章让你快速入门Docker
Docker 是什么? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
18 0
Java 简介(Java 发展概述)|学习笔记
快速学习 Java 简介(Java 发展概述)
8 0
对于操作系统而言进程、线程以及Goroutine协程的区别
进程、线程、协程实际上都是为并发而生。但是他们的各自的模样是完全不一致的,下面我们来分析一下他们各自的特点和关系。本文不重点介绍什么是进程和线程,而是提炼进程、线程、协程干货。且是基于Linux下的进程、线程解释。
4 0
Golang中逃逸现象, 变量“何时栈?何时堆?”
Golang中一个函数内局部变量,不管是不是动态new出来的,它会被分配在堆还是栈,是由编译器做逃逸分析之后做出的决定。
5 0
研发职位到底应该怎么设置?(下)
研发职位到底应该怎么设置?(下)
8 0
真假搜索引擎蜘蛛IP地址和UA(UserAgent)大全
真假搜索引擎蜘蛛IP地址和UA(UserAgent)大全 这些信息不是一直不变的,这里仅供参考。
7 0
Golang中make与new有何区别?
本文主要给大家介绍了Go语言中函数`new`与`make`的使用和区别,关于Go语言中`new`和`make`是内建的两个函数,主要用来创建分配类型内存。在我们定义生成变量的时候,可能会觉得有点迷惑,其实他们的规则很简单,下面我们就通过一些示例说明他们的区别和使用。
11 0
+关注
30
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载