android include merge标签
来源:互联网 发布:wpf 组态软件 编辑:程序博客网 时间:2024/05/22 05:23
include和merge标记的作用主要是为了解决layout的重用问题。
比如我们有三四个Activity但是他们都要用到同一个样式的标题栏,虽然我们把一样的代码copy个三四遍也没关系,但实在是太丑了,而且效率太低,如果这个标题栏要改样式,你岂不是要去三四个地方分别改动。
为了解决这个问题,android中有了include和merge标记
以下为标题栏的layout文件titlebar.xml 我们将使用Include标记重用这个文件
<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="http://4265337.blog.163.com/blog/@drawable/gafricalogo" /></FrameLayout>
那么在那三四个activity中你可以适用Include标记
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width=”match_parent” android:layout_height=”match_parent” android:gravity="center_horizontal"> <include layout="@layout/titlebar"/> <TextView android:layout_width=”match_parent” android:layout_height="wrap_content" android:text="@string/hello" /> ...</LinearLayout>
调用了Include之后,titlebar文件的内容就被完全嵌入到了include所指定的位置。而且你还可以在include中重新更改一些属性的值,比如
<include android:id=”@+id/news_title” android:layout_width=”match_parent” android:layout_height=”match_parent” layout="@layout/title"/>
原来layout中的wrap_content属性就被改成了match_parent属性
再来说一下merge标记
上面的include有一个副作用就是他多套了一层root节点FrameLayout ,使得再构图的时候会多花费一点时间
如果你不能容忍这个的话那你可以试一下merge标记
titlebar2.xml
<merge xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="http://4265337.blog.163.com/blog/@drawable/gafricalogo" /></merge>
这样行成的titlebar2文件就少了外层的root节点,merge标记可以直接成为root节点,当titlebar2被include到文件中时,merge标记就会被忽略掉,而直接由里面的ImageView取代原来include的位置。避免了冗余的layout。
所以include和merge是配合使用的,不是一个互斥的或者说是平级的关系。
再来说一个在使用这两个标签时最容易出现的问题。
经常会有同学在RelativeLayout中使用include标签
但是却发现include进来的控件无法用layout_alignParentBottom=”true”之类的标签来调整。这个真的非常恼火。其实解决方法非常简单,只要你在include的时候同时重载下layout_width和layout_height这两个标签就可以了。如果不重载,任何针对include的layout调整都是无效的!
原文地址:
http://4265337.blog.163.com/blog/static/195375820127935731114/
文章写得不错我就原文拿过来了,希望能帮到人家。。。
- android include merge标签
- Android中的<include>标签和<merge>标签
- Android layout 使用include和merge 标签
- Android Layout 中 include merge 标签
- Android中的viewStub、requestFocus、include、merge标签
- android merge与include标签混合使用
- Android编程style, include, merge标签
- Android include与merge标签使用详解
- android 布局优化标签<include/>、<merge />、<ViewStub />
- Android布局:include、merge 、ViewStub标签区别
- Android 布局优化 include,merge,viewstub标签
- <include /> <viewstub /> <merge /> 标签
- android <include/>标签和 <merge/>标签的使用
- Android中使用include标签和merge标签重复使用布局
- Android中使用include标签和merge标签重复使用布局
- android中viewStub,merge,include,requestFocus标签介绍
- Android Layout标签之-viewStub,requestFocus,merge,include
- Android里merge和include标签的使用
- c环境下Json字符串的解析
- linux基础操作--网络配置
- POJ 1811 Prime Test(大素数判断+大合数素因子分解)
- java读取redis数据(redis版本2.6)
- android工具集合与api参考
- android include merge标签
- [root@master java]# hadoop namenode -format DEPRECATED: Use of this script to execute hdfs command i
- 【转】python多进程并发(multiprocessing)
- 30岁之前, 追随一个好老板比好公司更重要
- java_code_template.xml
- wifi 测试项目和依据标准
- html 基础
- 木头骑士的Linux编程实验室(二)——基本的文件读写操作
- 面向对象学习--嵌套类(Nested Class)