Android启动白屏问题解决办法

最近做项目时,由于后台接口暂时没调,登录一步就直接跳过了(点击登录按钮直接跳转后面页面),界面运行很顺畅 。后来可以登录了,因为在登录页的onCreate方法中会判断获取本地保存的用户名及密码,这无疑就导致了在执行onCreate时占用了时间,这时也就出现了白屏问题。而使用setContentView又一定要放在onCreate中,setContentView本身,就需要占用时间,所以这个白屏无法从根本上消除。

这个白屏是由activity的theme项来决定,学名Preview,,消除的方法,是继承系统给定的样式(values文件夹下styles.xml)添加以下红色代码来禁用其预览页。

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- 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:windowDisablePreview">true</item>
</style>

当然,也可以通过

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

来指定显示的背景页。

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

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

//背景图
<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>
//让背景透明,
//activity左右滑动时,划出区域显示下方的窗口
<item name="android:windowIsTranslucent">true</item>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值