文档章节

Android用<include>复用/重用布局

h
 houj
发布于 2014/09/30 15:57
字数 485
阅读 143
收藏 0

Android用用<include>复用/重用布局


用<include>嵌入其他布局文件

<LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"  
             xmlns:tools= "http://schemas.android.com/tools"  
   android:layout_width = "match_parent"  
   android:layout_height= "match_parent"  
   android:paddingBottom= "@dimen/activity_vertical_margin"  
     android:paddingLeft= "@dimen/activity_horizontal_margin"  
    android:paddingRight= "@dimen/activity_horizontal_margin"  
      android:paddingTop= "@dimen/activity_vertical_margin"  
   tools:context        = ".MainActivity"  
   android:orientation  = "vertical" >  
   <include layout= "@layout/titlebar">  
   <TextView  
      android:layout_width ="wrap_content"  
      android:layout_height ="wrap_content"  
      android:text ="@string/hello_world" >  
< LinearLayout>
你也可以在当前布局中复写重用组件的android:layout_* 属性
<include  
   android:id ="@+id/news_title"  
   android:layout_width ="match_parent"  
   android:layout_height ="match_parent"  
   layout= "@layout/titlebar" >

使用<merge>标签作为根,

<merge/>标签可以帮助你在你的视图层次中消除多余的视图组,当一个布局包含另外一个布局时。当你的主布局是一个垂直结构的LinearLayout包含两个连续的能被其它布局重用的视图,被你放置在布局中的两个可重用的视图都需要各自的根视图,使用另外一个LinearLayout来充当可重用视图的根视图时,会导致一个垂直结构的LinearLayout嵌套在另外一个垂直结构的LinearLayout中,嵌套的LinearLayout除了减慢你的UI渲染速度以外没有任何的实际作用,为了避免这种情况的发生,我们可以使用<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/>标签来添加进布局中,这样Android系统并不会理会<merge/>标签,而是直接把两个Button放置在布局中,避免了不必要的嵌套。另外需要注意的是<merge/>只可以作为布局的根节点,当需要包含其它布局组件的布局本身是以<merge/>为根节点的话,需要将被导入的xml layout置于viewGroup中,同时需要设置attachToRoot为True

© 著作权归作者所有

上一篇: Android性能优化
下一篇: NRF51822之定时器
h
粉丝 9
博文 81
码字总数 57985
作品 0
长沙
技术主管
私信 提问
android UI优化 - 标签减少重复布局代码

原文链接 更多教程 你将学到 标签简介 你一定经常遇到相似度很高的UI需求:比如同一种标题栏、同一个样式的弹窗、按钮...等等。 每次都重复的写一样的布局代码么? 答案肯定是:NO !!! 提...

TryEnough
01/24
0
0
Android Fragment---设计理念

Android在Android3.0中引入了Fragment,主要用于支持在大屏幕上进行更多的动态和灵活的UI设计,如平板电脑。因为平板电脑的屏幕比手持设备要大,因此有更多的空间用于UI组件的组合和互换。F...

长平狐
2012/10/16
287
0
Android应用布局技巧:创建可复用的UI组件

Android平台提供了广泛的UI可视组件---widget,把这些小的可视的构件组合到一起,就可以给用户提供复杂而有用的界面。但是,应用程序经常需要一些高级可视组件,要满足这样的需求,并要达到高...

长平狐
2012/10/16
765
0
Android 使用 标签来重用layout代码

如果在一个项目中需要用到相同的布局设计,可以通过 标签来重用layout代码,该标签在android开发文档中没有相关的介绍。在android主屏程序中 用到了这个标签: 这样可以多次引用一个布局片段...

华宰
2011/09/20
1K
0
布局技巧:使用 ViewStub

多亏了标签,在Android里,很容易就能做到共享和重用UI组件。在Android开发中,很容易就能创建出复杂的UI结构,结果呢,用了很多的View,且其中的一些很少使用。针对这种情况,谢天谢地,And...

鉴客
2011/09/26
717
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
今天
8
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
今天
6
0
前端——使用base64编码在页面嵌入图片

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于...

被毒打的程序猿
今天
8
0
Flutter 系列之Dart语言概述

Dart语言与其他语言究竟有什么不同呢?在已有的编程语言经验的基础上,我们该如何快速上手呢?本篇文章从编程语言中最重要的组成部分,也就是基础语法与类型变量出发,一起来学习Dart吧 一、...

過愙
今天
5
0
rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部