Android小技巧--用style减少重复代码

来源:互联网 发布:达观数据 技术体系 编辑:程序博客网 时间:2024/05/13 18:50

先来看要实现一个简单的需求


如果我们按照正常的布局写的话是这样的:

<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修改一次就够了

1 0
原创粉丝点击