android中include和merge标记的区别和使用
来源:互联网 发布:新四大发明 知乎 编辑:程序博客网 时间:2024/04/28 11:24
include和merge标记的作用主要是为了解决layout的重用问题。
比如我们有三四个Activity但是他们都要用到同一个样式的标题栏,虽然我们把一样的代码copy个三四遍也没关系,但实在是太丑了,而且效率太低,如果这个标题栏要改样式,你岂不是要去三四个地方分别改动。
为了解决这个问题,android中有了include和merge标记
以下为标题栏的layout文件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>
那么在那三四个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="@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://blog.sina.com.cn/s/blog_67d95f400100zk3d.html
- android中include和merge标记的区别和使用
- android中include和merge标记的区别和使用
- android中include和merge标记的区别和使用
- android中include和merge标记的区别和使用
- android中include和merge标记的区别和使用
- android中include和merge标记的区别和使用
- android中include和merge标记
- android include和merge标记
- android--Merge和include标签的区别和使用
- Android里merge和include标签的使用及区别
- 【layout】Android中merge和include标签的使用
- Android中merge和include标签的使用
- Android中include和merge标签的使用(附源码)
- 在android布局中使用include和merge标签
- 在android布局中使用include和merge标签
- 在android布局中使用include和merge标签
- 在android布局中使用include和merge标签
- 在android布局中使用include和merge标签
- linux /dev 常见特殊设备介绍与应用[loop,null,zero,full,random]
- 国产手机品牌冲击电商平台
- 广东制鞋业全体华丽转身
- 50个比较实用jQuery代码段
- 杜汶泽挑衅大陆观众 《小团圆》无辜受害
- android中include和merge标记的区别和使用
- Java中创建URL的常见问题及解决方案
- sql server 字符串转成日期格式
- ARM汇编冒泡排序之c语言调用汇编
- 合并石子
- 比较R语言和集算器的向量运算
- ruby中的整数、浮点数、字符串之间的相互转换
- C#与java
- 函数数组