先来看要实现一个简单的需求
如果我们按照正常的布局写的话是这样的:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="#00ffff"
android:orientation="horizontal"
>
<TextView
android:id="@+id/zero"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:textSize="16sp"
android:ems="1"
android:gravity="center"
android:textColor="#ff00ff"
android:text="第零个"/>
<TextView
android:id="@+id/one"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:ems="1"
android:textSize="16sp"
android:gravity="center"
android:textColor="#ff00ff"
android:text="第一个" />
<TextView
android:id="@+id/two"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:ems="1"
android:textSize="16sp"
android:gravity="center"
android:textColor="#ff00ff"
android:text="第二个" />
<TextView
android:id="@+id/three"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:ems="1"
android:textSize="16sp"
android:gravity="center"
android:textColor="#ff00ff"
android:text="第三个" />
<TextView
android:id="@+id/four"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:ems="1"
android:textSize="16sp"
android:gravity="center"
android:textColor="#ff00ff"
android:text="第四个" />
<TextView
android:id="@+id/five"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:textSize="16sp"
android:ems="1"
android:gravity="center"
android:textColor="#ff00ff"
android:text="第五个" />
<TextView
android:id="@+id/six"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:textSize="16sp"
android:ems="1"
android:gravity="center"
android:textColor="#ff00ff"
android:text="第六个" />
<TextView
android:id="@+id/seven"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:textSize="16sp"
android:ems="1"
android:gravity="center"
android:textColor="#ff00ff"
android:text="第七个" />
<TextView
android:id="@+id/eight"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:textSize="16sp"
android:gravity="center"
android:ems="1"
android:textColor="#ff00ff"
android:text="第八个" />
<TextView
android:id="@+id/nine"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:textSize="16sp"
android:gravity="center"
android:textColor="#ff00ff"
android:text="第九个" />
<TextView
android:id="@+id/ten"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:layout_weight="1"
android:textSize="16sp"
android:ems="1"
android:gravity="center"
android:textColor="#ff00ff"
android:text="第十个" />
</LinearLayout>
是不是感觉很多重复的代码,而且很杂的,下面来看用style的代码:
首先要在values文件夹下面的style文件里面写上公用的属性:
<style name="DuanLian">
<item name="android:layout_width">0dp</item>
<item name="android:layout_weight">1</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_margin">5dp</item>
<item name="android:textColor">#ff00ff</item>
<item name="android:ems">1</item>
<item name="android:textSize">16sp</item>
<item name="android:gravity">center</item>
</style>
然后在布局文件里面直接引入这个style就行了,是这样写的:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="#00ffff"
android:orientation="horizontal"
>
<TextView
android:id="@+id/zero"
style="@style/DuanLian"
android:text="第零个"/>
<TextView
android:id="@+id/one"
style="@style/DuanLian"
android:text="第一个" />
<TextView
android:id="@+id/two"
style="@style/DuanLian"
android:text="第二个" />
<TextView
android:id="@+id/three"
style="@style/DuanLian"
android:text="第三个" />
<TextView
android:id="@+id/four"
style="@style/DuanLian"
android:text="第四个" />
<TextView
android:id="@+id/five"
style="@style/DuanLian"
android:text="第五个" />
<TextView
android:id="@+id/six"
style="@style/DuanLian"
android:text="第六个" />
<TextView
android:id="@+id/seven"
style="@style/DuanLian"
android:text="第七个" />
<TextView
android:id="@+id/eight"
style="@style/DuanLian"
android:text="第八个" />
<TextView
android:id="@+id/nine"
style="@style/DuanLian"
android:text="第九个" />
<TextView
android:id="@+id/ten"
style="@style/DuanLian"
android:text="第十个" />
</LinearLayout>
是不是减少了很多重复的代码,看起来也简单明了一点呢?而且还有一点好处就是,需要修改一个属性的话,只要在style修改一次就够了