文档章节

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

h
 houj
发布于 2014/09/30 15:57
字数 485
阅读 130
收藏 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

© 著作权归作者所有

共有 人打赏支持
h
粉丝 8
博文 81
码字总数 57985
作品 0
长沙
技术主管
Android开发优化之——对界面UI的优化(2)

在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局。如果我们...

KingMing
2015/04/03
0
0
Android性能优化:这是一份详细的布局优化 指南(含、、)

前言 在 开发中,性能优化策略十分重要 本文主要讲解性能优化中的布局优化,希望你们会喜欢。 目录 /** 实例说明:在上述例子,在布局B中 通过标签引用布局C 此时:布局层级为 = RelativeLa...

Carson_Ho
05/14
0
0
四种LaunchMode及其使用场景

四种LaunchMode及其使用场景 standard 模式 这是默认模式,每次激活Activity时都会创建Activity实例,并放入当前任务栈中。使用场景:大多数Activity。 singleTop 模式 singleTop模式的Activ...

火云
2017/10/20
0
0
创建灵活的用户界面-Android Fragment

创建灵活的用户界面-android Fragment. Android Support Library(支持库)提供了包含一个API库的JAR文件,当你的应用运行在Android早期版本时,Support Library(支持库)允许你的应用使用最近版...

顶层设计
2013/02/26
0
0
android手机卫士、3D指南针、动画精选、仿bilibli客户端、身份证银行卡识别等源码

Android精选源码 android身份证、银行卡号扫描源码(http://www.apkbus.com/thread-599859-1-1.html) android仿bilibili客户端(http://www.apkbus.com/thread-599860-1-1.html) android一款3......

逆鳞龙
06/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

线性一致性和 Raft

作者:沈泰宁 在讨论分布式系统时,共识算法(Consensus algorithm)和一致性(Consistency)通常是讨论热点,两者的联系很微妙,很容易搞混。一些常见的误解:使用了 Raft [0] 或者 paxos ...

TiDB
18分钟前
0
0
兄弟连区块链教程以太坊源码分析core-state-process源码分析

## StateTransition状态转换模型 /* The State Transitioning Model 状态转换模型 A state transition is a change made when a transaction is applied to the cu......

兄弟连区块链入门教程
20分钟前
0
0
linear-gradient渐变中的参数

在看张鑫旭的博客 遇到渐变数值后面带参数不太理解 @supports (-webkit-mask: none) or (mask: none) { .box { border: none; background: linear-gradient(to bottom, #34538...

红羊在厦门
21分钟前
0
0
Python yagmail模块自动发邮件

Python发邮件yagmail模块 import yagmail#连接服务器yag=yagmail.SMTP('xx@163.com','yy','smtp.163.com')#邮箱正文contents=["test","email send"]#发送邮件#yag.send('...

小白兔_球球
22分钟前
1
0
pada mysql

CREATE SCHEMA `exchange` DEFAULT CHARACTER SET utf8mb4 ;

qwfys
31分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部