Re-using Layouts with <include/>
尽管Android提供了很多种小的组件可以重用,我们还需要自定义一些稍微复杂一点的小组件进行重用。我们可以使用<include/> and <merge/> 标签来对当前的layout嵌入一些其他的layout.
在创建一个稍微复杂一点的layout时,重用layout是个很给力的方法。比如我们需要一个YES/NO的控制栏,包含文字提示的Progress bar。这意味着我们可以在很多地方重用那些自定义的layout.
Create a Re-usable Layout [创建一个可重用的Layout]
如果你已经知道哪些组件是会重用的,我们可以创建一个XML并且定义这个layout。
例如:下面定义了一个需要在每个Activity都需要显示的titlebar.xml
- <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>
Use the <include> Tag [使用<include>标签]
下面示例了一个包含了titlebar控件的布局:
- <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里面的属性,例如:
- <include android:id=”@+id/news_title”
- android:layout_width=”match_parent”
- android:layout_height=”match_parent”
- layout=”@layout/title”/>
Use the <merge> Tag [使用<merge>标签]
某些时候,自定义可重用的布局包含了过多的层级标签,比如我们需要在LinearLayout里面嵌入一个重用的组件,而恰恰这个自定义的可重用的组件根节点也是LinearLayout,这样就多了一层没有用的嵌套,无疑这样只会拖慢程序速度。而这个时候如果我们使用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平级。
分享到:
相关推荐
Lesson2---模块和tinyos执行模型.ppt
标题中的"COMP397-W2021-Lesson2a-main-main.rar"很可能是一个大学课程的编程作业或教学资源的压缩文件,其中"COMP397"可能代表计算机科学的某一门课程编号,"W2021"可能是冬季学期的2021年份,而"Lesson2a"则暗示这...
新概念英语第一册lesson25-26_精品课件PPT课件.pptx
Lesson---Xsteel-Batch-File-Setup.doc
Lesson2.pdf详细介绍了MQL4的基础语法,包括变量声明、数据类型(如整型、浮点型、字符串等)、运算符、流程控制结构(如条件语句和循环),以及函数的使用。这些都是编写任何MQL4程序的基础。 **Lesson3-时间和...
这篇文档是针对五年级学生设计的一份英语学习资料,涵盖了冀教版五年级下学期Lesson 9和Lesson 10的精选习题。这些习题旨在帮助学生巩固和提升他们的英语听说读写能力,同时也注重培养他们的实际应用能力。 在...
Lesson 2 - Loading Data from the Internet (ConnectingToTheInternet) - Connect to the Internet and communicate with web APIs - Learn about threading and how to make requests without slowing down your ...
Lesson 2至Lesson 4则逐步深入到FPGA设计的基础。可能涉及的内容包括逻辑门、组合逻辑电路、时序逻辑电路、触发器、寄存器等基本逻辑单元的使用,以及如何用HDL来描述这些电路。特权同学可能会通过实例演示如何编写...
Could you help me, please- Lesson 65-2-教学教案.docx
Lesson 01-lesson 02 创建一个OpenGL窗口: 如何创建三角形和四边形 http://ieee.org.cn/dispbbs.asp?boardID=61&ID=53679 Lesson 03-lesson 04 添加颜色 旋转 http://ieee.org.cn/dispbbs.asp?boardID=61&ID=53682 ...
Lesson11---TOSSIM仿真.ppt
lesson03-简单回归案例pytorchlesson03-简单回归案例pytorchlesson03-简单回归案例pytorchlesson03-简单回归案例pytorchlesson03-简单回归案例pytorchlesson03-简单回归案例pytorchlesson03-简单回归案例...
Lesson 01-lesson 02 创建一个OpenGL窗口: 如何创建三角形和四边形 http://ieee.org.cn/dispbbs.asp?boardID=61&ID=53679 Lesson 03-lesson 04 添加颜色 旋转 http://ieee.org.cn/dispbbs.asp?boardID=61&ID=53682 ...
新概念英语第一册Lesson 55-56的PPT课件主要涵盖了英语的基本语法和词汇,特别是关于家庭日常生活活动的表达。以下是其中的核心知识点: 1. 时间表达法: - "When does mother visit her friends?" 这句话展示了...
Lesson1---TinyOS入门.ppt
Lesson5---传感检测.ppt 学习tinyos经典例程讲解
Unit1Lesson2-PEP小学四年级英语上册.ppt
Lesson4---串口通信与SerialForwarder.ppt
标题中的"lesson15-CIFAR-VGG.zip_liefop_vgg"暗示了这是一个关于机器学习课程第15课的内容,主要涉及CIFAR数据集和VGG(Visual Geometry Group)深度学习模型的实现,使用了lief库进行操作。Lief是一个用于处理和...
Lesson 01-lesson 02 创建一个OpenGL窗口: 如何创建三角形和四边形 http://ieee.org.cn/dispbbs.asp?boardID=61&ID=53679 Lesson 03-lesson 04 添加颜色 旋转 http://ieee.org.cn/dispbbs.asp?boardID=61&ID=53682 ...