Android Material Design Theme 分析

对于系统原生的Theme,有篇文章写的非常好。
Android开发之Theme、Style探索及源码浅析_工匠若水-CSDN博客

官网文档
应用资源概览 | Android 开发者 | Android Developers

讲解 ?attr:/
@android, ?attr/ 和 ?android 的区别 - (jianshu.com)

资源引用

引用资源(reference a resource)

@[:]/

引用样式属性(referencing style attributes)

?[:][/]

其中 package_nameresource_type 可以省略,例如 ?attr/colorOnSurface 可以简写成 ?colorOnSurface?android:attr/colorBackground 可以简写成 ?android:colorBackground

  • 假如我们要改变 TextView 控件的字体颜色,我们可以这么写:

很多控件的变量都有预制的属性与之对应,比如字体颜色,大小等,这些属性与xml布局中的属性是等同的。

  1. 重写控件自定义属性
    自定义属性和预制属性的区别在于没有前缀 android:,重写方式等同于重写预制属性。
  2. 重写控件style
    先找到控件默认的 style,对于style 的重写最好基于已有的style。
    例如对于 MD 主题中的 popupMenuStyle 进行重写
// 先找到 popupMenuStyle 定义的位置,在父主题中这里


  1. 重写theme
    theme的重写等同于 style 重写

你可能感兴趣的:(Android Material Design Theme 分析)