(转)Android中View绘制优化二一---- 使用<include />标签复用布局文件
来源:互联网 发布:吉林软件行业协会 编辑:程序博客网 时间:2024/05/21 19:54
本文原创, 转载请注明出处:http://blog.csdn.net/qinjuning
译二:
使用<include />标签复用布局文件
翻译地址:http://developer.android.com/training/improving-layouts/reusing-layouts.html#Merge
组件 ---- 某些特定布局文件 。为了更有效率复用的布局文件,你可以使用<include />以及<merge />
标签将其他的布局文件加入到当前的布局文件中。
复用布局文件是一种特别强大的方法,它允许你创建可复用性的布局文件。例如,一个包含“Yse”or“No”的
Button面版,或者是带有文字说明的 Progressbar。复用布局文件同样意味着你应用程序里的任何元素都能从
繁杂的布局文件提取出来进行单独管理,接着你需要做的只是加入这些独立的布局文件(因为他们都是可复用地)。
因此,当你通过自定义View创建独立的UI组件时,你可以复用布局文件让事情变得更简单。
1、创建一个可复用性的布局文件
如果你已经知道复用布局的”面貌”,那么创建、定义布局文件( 命名以”.xml”为后缀)。例如,这里是一个来自
G- Kenya codelab 的布局文件,定义了在每个Activity中都要使用的一个自定义标题 (titlebar.xml):由于这些
可复用性布局被添加至其他布局文件中,因此,它的每个根视图(root View)最好是精确(exactly)的。
- <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width=”match_parent”
- android:layout_height="wrap_content"
- android:background="@color/titlebar_bg">
- <ImageView android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/gafricalogo" />
- </FrameLayout>
2、使用<include />标签
它复用了上面列出的“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="center_horizontal">
- <include layout="@layout/titlebar"/>
- <TextView android:layout_width=”match_parent”
- android:layout_height="wrap_content"
- android:text="@string/hello"
- android:padding="10dp" />
- ...
- </LinearLayout>
你也可以在<include />节点中为被添加的布局文件的root View定义特别标识,重写所有layout参数即可(任何
以“android:layout_”为前缀的属性)。例如:
- <include android:id=”@+id/news_title”
- android:layout_width=”match_parent”
- android:layout_height=”match_parent”
- layout=”@layout/title”/>
3、使用<merge />标签
主布局文件是一个垂直地包含两个View的LinearLayout,该布局能够复用在其他布局中,而对任意包含两个View的
布局文件都需要一个root View(否则, 编译器会提示错误)。然而,在该可复用性布局中添加一个LinearLayout
作为root View,将会导致一个垂直的LinearLayout包含另外的垂直LinearLayout。内嵌地LinearLayout只能减缓
UI效率,其他毫无用处可言。
该复用性布局利用.xml呈现如下:
- <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 />标签的布局文件:
- <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 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>
- <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 />节点。
另外的,按需加载View视图 ,请看:
http://developer.android.com/training/improving-layouts/loading-ondemand.html
如何使ListView流畅滑动 ,请看:
http://developer.android.com/training/improving-layouts/smooth-scrolling.html
转自:http://blog.csdn.net/qinjuning/article/details/7957858
- (转)Android中View绘制优化二一---- 使用<include />标签复用布局文件
- Android中View绘制优化二一---- 使用<include />标签复用布局文件
- Android中View绘制优化二一---- 使用<include />标签复用布局文件
- Android中View绘制优化二一---- 使用<include />标签复用布局文件
- android 布局优化(一),include标签
- (转)Android中View绘制优化之一---- 优化布局层次
- Android布局文件中include标签的使用
- 【转】在Android布局中使用include和merge标签
- Android中View绘制优化之一---- 优化布局层次
- Android中View绘制优化之一---- 优化布局层次
- Android中View绘制优化之一---- 优化布局层次
- Android中View绘制优化之一---- 优化布局层次
- Android中View绘制优化之一---- 优化布局层次
- Android中View绘制优化之一---- 优化布局层次
- 布局文件-include标签使用
- android布局优化之<include>标签的使用
- Android中使用include标签和merge标签重复使用布局
- Android中使用include标签和merge标签重复使用布局
- WDF----PCI设备初始化
- 不要挡住我的阳光(第欧根尼)续
- android之调用系统打电话与发短信界面
- jsp页面在servlet返回后,js/jquery不起作用的原因
- C++ map的基本操作和使用
- (转)Android中View绘制优化二一---- 使用<include />标签复用布局文件
- php消息队列处理实践 ,利用AMQP和redis两种方法
- 管道流对象及其应用
- TortoiseSVN使用简介
- struts2接收前台参数的3个方法
- cookies和session的区别
- CloudStack 在Windows 平台上的开发环境设置
- 简单的工厂模式
- 本人学习Makefile的总结和分享