-
用好android:theme属性,定制主题样式
提问
1)什么时候应该使用Theme.AppCompat vs ThemeOverlay.AppCompat?
Theme.AppCompat用于为整个应用程序设置全局主题。ThemeOverlay.AppCompat用于覆盖(或“覆盖”)特定视图的主题,特别是工具栏。参考1
2)待添加..你应该熟悉的属性
属性 | 使用对象 | 作用 |
---|---|---|
colorPrimaryDark | StatusBar 状态栏 | 状态栏的背景色 |
windowBackground | window | 页面背景色 |
navigationBarColor | 底部导航栏 | 底部导航栏颜色 |
colorPrimary | ActionBar | Appbar 的背景色,通常也是app的主题色调,当某些属性没有定义(如colorAccent),则会取这个属性的颜色 |
textColorPrimary | Toobar/EditText/Spinner | Toolbar上的title颜色,EditText上的textcolor, |
colorAccent | EditText/CheckBox/RadioButton/SwitchCompat/Spinner | 各个控制控件的选中颜色 |
colorControlNormal | CheckBox/RadioButton/Spinner | 各个控制控件的默认颜色 |
colorControlActivated | colorAccent 的替代者 | 比如对于 CheckBox 和 RadioButton 的 checked 状态,colorControlActivated 属性会覆盖 colorAccent 属性的对应颜色 |
colorControlHighlight | 所有可点击的view | 所有可点击 Views 触摸状态下的 Ripple(涟漪)效果。仅作用于 Lollipop (5.0)及更高版本。 |
colorButtonNormal | button | Button normal 状态下的背景色。注意,这种设置与 Button 的 android:background 属性改变背景色不同的是,前者在 Lollipop 及更高版本上会让 Button 依旧保持阴影和 Ripple 触摸效果。 |