样式
样式是一组能应用于视图组件的属性,用于复用相同的 UI 特性
样式的继承可以在原有样式的基础上添加和覆盖属性
继承方式一:通过命名表示样式继承关系
<!--用点连接表示继承关系,只能在包内使用-->
<style name="BeatBoxButton.Strong">
<item name="android:textStyle">bold</item>
</style>
继承方式二:用指定父样式的方法继承
<!--用 parent 属性表示继承关系,可以跨库使用-->
<style name="StrongBeatBoxButton"
parent="@style/BeatBoxButton">
<item name="android:textStyle">bold</item>
</style>```
###主题
样式能让一些属性复用,看上去节省了许多工作,在 styles.xml 公共文件中,可以为所有组件定义一套样式属性共用。然而,如果组件多了,需要逐个为所有组件添加它们要用到的样式,工作量是很大的。
这个时候主题就可以派上用场了。可以把主题看作样式的进化加强版,同样是定义一套公共主题属性,样式属性需要逐个添加,而主题属性则会自动应用于整个应用。主题属性能引用颜色这样的外部资源,也能引用其他样式。使用主题,可以简单地说:“所有按钮都使用这个样式。”再也不用找到每个按钮,告诉它们要用哪个主题了。
> AppCompat 库自带三大主题:
- Theme.AppCompat——深色主题
- Theme.AppCompat.Light——浅色主题
- Theme.AppCompat.Light.DarkActionBar——带深色工具栏的浅色主题