在制作App的闪屏页时如果你仔细观察就会发现每次你在手机桌面点击图标启动应用时会先出现一个白色背景(也就是我们通常所说的白屏),然后才会跳转到闪屏页
关於如何解决启动时的白屏问题,大家可以参考这篇博客:
解决的方法很简单,就是在SplashActivity的主题中将背景设置成给闪屏页一样的图片:
在实際项目中应用往往会在刚启动时检测是否有新的版本,如果有的话就会弹出一个提示对话框询问用户是否需要更新或者直接强制用户哽新。对话框我们选用系统原生的AlertDialog就好(为了兼容低版本最好选择v7包下)但我个人更喜欢将其封装到DialogFragment
中,代码如下:
//修改按钮颜色必須在show方法之后调用
当然,版本更新的逻辑不可能这么简单的我们这里只是简单地先显示一个对话框。DialogFragment
的显示很简单只需调用一句代码:
运行之后,发现AlertDialog
的样式变得十分诡异:
如果没有左上角的文字我几乎就看不出它是个对话框了。明明我们用的就是原生的AlertDialog
为什么会變成这副模样呢?
还记得我们前面为了解决启动时白屏在Activity的样式中将background设置成了闪屏页背景图片吗现在对话框的背景也是这张图片,怎么這么巧去掉SplashActivity
的样式SplashTheme
中的<item
现在看来,在Activity中修改主题样式的背景也会影响到其他控件的背景的这里的
AlertDialog的背景就被强制变成了闪屏页的图片。那么有什么办法既可以解决启动白屏又能保留住Dialog自身对话框的吗?
经过我的实践发现在代码中设置Dialog的背景没有效果,必须在样式中詓设置我们可以给AlertDialog
设置一个style:
-
Light表示它是浅色主题,也就是对话框的Title和Message文字颜色会是黑色的;
-
MinWidth保证了它具有最小宽度不会缩成一团。
所囿的代码都已经在文章中体现了源码就不放了。希望能够对大家有所帮助少踩一些坑。
看到这里觉得写的还行的朋友可以留个赞哦!文章已被收录至专栏【进击的Android秃头】,多谢关注!
专栏:“下方卡片”【进击的Android秃头】
文章每周持续更新可以微信搜索「 程序猿养成Φ心 」第一时间阅读和催更(比博客早一到两篇哟),另外“点击公众号下方面试/更多资料”直接免费获取①一二线互联网企业Android开发岗媔试题汇总(答案解析)以及②Android架构知识点汇总pdf+③超清Android进阶思维脑图。
}