在做Android应用的时候,有时候往往有一堆布局有相似的界面,单独写每一个界面很是费时费力这是需要向上抽取布局,例如下面的Activity界面
上面的界面总体上来说极为相似,可以粘贴复制代码实现,但是粘贴复制显得代码过于笨重不方便维护,加入我们需要换一个背景那么至少需要修改四个文件
好了上代码 抽取如下部分 文本标题,文本类容 2个按钮
在抽取前可能这样干:
<TextView
android:layout_width="match_parent"
android:layout_height="55dp"
android:textSize="18sp"
android:background="#99CCFF"
android:padding="5dp"
android:textColor="#000000"
android:text="1.欢迎使用手机防盗"/>
现在抽取 在Android工程--->res--->values--->styles.xml 重新创建一个样式
<style name="tv_title">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">55dp</item>
<item name="android:gravity">center_vertical</item>
<item name="android:textSize">18sp</item>
<item name="android:padding">5dp</item>
<item name="android:background">#99CCFF</item>
<item name="android:textColor">#000000</item>
</style>
现在如果需要使用类似的标题效果就可以应用样式了
<TextView
style="@style/tv_title"
android:text="1.欢迎使用手机防盗"/>
简单明了后面的2,3,4页只是需要修改文本就可以了 其余的抽取方法一样了
Button下一步
<style name="bu_next">
<item name="android:gravity">center_vertical</item>
<item name="android:drawableRight">@drawable/next</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:text">下一步</item>
<item name="android:textColor">#ffffff</item>
<item name="android:background">@drawable/dg_btn_confirm_select</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:layout_alignParentRight">true</item>
</style>
Button上一步
<style name="bu_pre">
<item name="android:gravity">center_vertical</item>
<item name="android:drawableLeft">@drawable/previous</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:text">上一步</item>
<item name="android:textColor">#ffffff</item>
<item name="android:background">@drawable/dg_btn_confirm_select</item>
<item name="android:layout_alignParentBottom">true</item>
<item name="android:layout_alignParentLeft">true</item>
</style>
用法
<Button
android:text="设置完成"
android:onClick="showNextPage"
style="@style/bu_next"/>
<Button
android:onClick="showPrePage"
style="@style/bu_pre"/>