Android中View绘制优化二一----使用include /标签复用布局文件本文原创, 转载请注明出处:http://blog.cs
Android中View绘制优化二一---- 使用<include />标签复用布局文件
译二:
使用<include />标签复用布局文件
翻译地址:http://developer.android.com/training/improving-layouts/reusing-layouts.html#Merge
复用布局文件是一种特别强大的方法,它允许你创建可复用性的布局文件。例如,一个包含“Yse”or“No”的 Button面版,或者是带有文字说明的 Progressbar。复用布局文件同样意味着你应用程序里的任何元素都能从 繁杂的布局文件提取出来进行单独管理,接着你需要做的只是加入这些独立的布局文件(因为他们都是可复用地)。 因此,当你通过自定义View创建独立的UI组件时,你可以复用布局文件让事情变得更简单。
1、创建一个可复用性的布局文件
如果你已经知道复用布局的”面貌”,那么创建、定义布局文件( 命名以”.xml”为后缀)。例如,这里是一个来自 G- Kenya codelab 的布局文件,定义了在每个Activity中都要使用的一个自定义标题 (titlebar.xml):由于这些 可复用性布局被添加至其他布局文件中,因此,它的每个根视图(root View)最好是精确(exactly)的。
2、使用<include />标签
在需要添加这些布局的地方,使用<include />标签 。 例如,下面是一个来自G-Kenya codelab的布局文件, 它复用了上面列出的“title bar”文件, 该布局文件如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width=”match_parent” android:layout_height=”match_parent” android:background="@color/app_bg" android:gravity="horizontal"> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/add"/> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/delete"/></LinearLayout>
为了避免冗余的布局元素,你可以使用<merge />作为复用性布局文件地root View 。例如:
使用<merge />标签的布局文件:
<merge xmlns:android="http://schemas.android.com/apk/res/android"> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/add"/> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/delete"/></merge>
现在,当你添加该布局文件时(使用<include />标签),系统忽略< merge />节点并且直接添加两个Button去 取代<include />节点。
