andorid style 使用与误区

Adroid 有如下的资源组织结构

andorid style 使用与误区_第1张图片


values/style.xml 有以下描述:

andorid style 使用与误区_第2张图片


大意如下:

基本应用主题,由API级别定义。这个主题(AppBaseTheme)在新设备上,会被 values-vXX/syles.xml 下面定义的AppBaseTheme 替换掉。


在更高API级别上自定义的主题可以定义在values-vXX/syles.xml下面,而向后低版本兼容的API则定义在这。


AppTheme :所有不针对特定版本API的自定义主题样式 定义在此处。


values-v11/syles.xml 下面有如下注释:

API11及以上版本基本应用主题,会替换values/styles.xml 下面AppBaseTheme 的样式定义在API 11及以上版本。

andorid style 使用与误区_第3张图片

values-v14/syles.xml 下面有如下注释:

这个AppBaseTheme会完全替换res/values/styles.xml and
        res/values-v11/styles.xml 下面的AppBaseTheme 在API 14及以上版本。

andorid style 使用与误区_第4张图片

 所以现在清楚了 各个style之间的关系及 AppBaseTheme 与AppTheme 之间的关系了。

 res/values/styles.xml  中 AppBaseTheme 定义的是专门针对低版本的样式。而专门针对高版本的特定样式则定义在values-11 和values-14 中,

AppTheme 中则定义 各版本间公用的样式。

这就解释了为什么,我写在values/styles.xml  中 AppBaseTheme 中的样式,在4.0以上的真机上死活出不了效果的原因了,这些样式应该定义在通用的AppTheme里面,就没问题了,这里面的样式,不会被values-14 中的默认的样式给覆盖掉。

你可能感兴趣的:(andorid style 使用与误区)