一、样式是把视图相同的属性抽取出来组成一个属性组,替换相同的属性,简化代码。
<style name="RemoteButton"> <item name="android:layout_width">0dp</item> <item name="android:layout_height">match_parent</item> <item name="android:textColor">#556699</item> <item name="android:textSize">20dp</item> <item name="android:layout_margin">3dp</item> </style>二、include是引入布局,当局部布局重复出现时,可以抽取该局部布局成为一个小布局,通过include引入小布局,替换重复的局部布局,也是简化代码。
例如:抽取成为小布局button_row.xml
<?xml version="1.0" encoding="utf-8"?> <TableRow xmlns:android="http://schemas.android.com/apk/res/android"> <Button style="@style/RemoteButton"/> <Button style="@style/RemoteButton"/> <Button style="@style/RemoteButton"/> </TableRow>在大布局中引用该布局
<include android:layout_weight="1" layout="@layout/button_row"/>三、样式的继承和使用
新建样式ActionButton继承RemoteButton
<style name="ActionButton" parent="RemoteButton"> <item name="android:textStyle">bold</item> </style>或
<style name="RemoteButton.ActionButton"> <item name="android:textStyle">bold</item> </style>
样式的使用
<Button style="@style/ActionButton"/>或
<Button style="@style/RemoteButton.ActionButton"/>
要注意以下情况
<include android:layout_weight="1" layout="@layout/button_row" style="@style/RemoteButton.ActionButton"/>并不会覆盖button_row中<Button style="@style/RemoteButton"/>
所以新建小布局button_row_bottom.xml
<?xml version="1.0" encoding="utf-8"?> <TableRow xmlns:android="http://schemas.android.com/apk/res/android"> <Button style="@style/RemoteButton.ActionButton"/> <Button style="@style/RemoteButton"/> <Button style="@style/RemoteButton.ActionButton"/> </TableRow>来使用子样式。