android:theme决定AlertDialog的背景颜色

时间:2024-05-20 09:16:13

最近遇到一个很奇怪的问题,两个项目弹出的dialog背景颜色不一样,一个是黑色的,一个是白色的,最后发现是AndroidManifest.xml文件里面application指定的android:theme设置的样式不一样。



黑色dialog背景效果图:

android:theme决定AlertDialog的背景颜色

dialog是黑色的时候application指定的样式如下:

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







白色背景如图:

android:theme决定AlertDialog的背景颜色
dialog是白色背景的时候application指定的样式如下:

  1. <!--  
  2.     Base application theme, dependent on API level. This theme is replaced  
  3.     by AppBaseTheme from res/values-vXX/styles.xml on newer devices.  
  4. -->  
  5. <style name="AppBaseTheme" parent="android:Theme.Light">  
  6.     <!--  
  7.         Theme customizations available in newer API levels can go in  
  8.         res/values-vXX/styles.xml, while customizations related to  
  9.         backward-compatibility can go here.  
  10.     -->  
  11. </style>  
  12.   
  13. <!-- Application theme. -->  
  14. <style name="AppTheme" parent="AppBaseTheme">  
  15.     <!-- All customizations that are NOT specific to a particular API-level can go here. -->  
  16.     <item name="android:windowNoTitle">true</item>  
  17. </style>  








总结:对比两个样式,我们很明显的发现白色背景多继承了一层,增加了AppBaseTheme样式............希望我的总结能让你们少遇到坑。。。