<merge/>多用于替换FrameLayout或者当一个布局包含另一个时,<merge/>标签消除视图层次结构中多余的视图组。例如你的主布局文件是垂直布局,引入了一个垂直布局的include,这是如果include布局使用的LinearLayout就没意义了,使用的话反而减慢你的UI表现。这时可以使用<merge/>标签优化。 代码语言:javascript 复制 <merge xm...
在这个例子中,<merge>将item_view.xml中的内容直接放到activity_main.xml中,不会产生额外的根视图。 总结 通过以上的介绍与示例,我们可以总结出: <include>标签:用于重用已有布局,并且保持原有的视图层级结构,它会在引用处增加额外的视图层级。 <merge>标签:用于合并布局,但不会增加额外的视图层级,适合需要扁平视图...
include标签的layout_*属性会替换掉被include视图的根节点的对应属性。 include标签的id属性会替换掉被include视图的根节点id 一个布局文件中支持include多个视图,但是这样会导致获取被include视图内的控件时 下面例子中,titlebar_layout.xml为标题栏布局,而activity_main.xml为主界面布局,activity_setting.xml为设置页面布...
if(TAG_MERGE.equals(name)){// 如果是merge标签,指定的root为空,或则attachToRoot为false,则抛出异常信息if(root==null||!attachToRoot){thrownewInflateException("<merge /> can be used only with a valid "+"ViewGroup root and attachToRoot=true");}rInflate(parser,root,attrs,false,false);} 针对...
Android官方提供了三个用来优化布局的标签,分别是include、merge与ViewStub,其中ViewStub是动态加载视图到内存,大家可以查阅:Android UI布局优化之ViewStub 一、include布局重用: 在Android的应用程序开发中,标题栏是必不可少的一个元素,大部分页面都要用到,而且布局都是一样的,这时候使用include标签就显得极其的方便。使...
ViewStub的inflate只能被调用一次,第二次调用会抛出异常。 虽然ViewStub是不占用任何空间的,但是每个布局都必须要指定layout_width和layout_height属性,否则运行就会报错。 总结 1.使用include标签重用布局 2.使用merge标签避免冗余的布局嵌套 3.使用ViewStub实现按需加载...
二、merge的用法以及注意点 merge标签存在的意义是帮助include标签排除多余的一层ViewGroup容器,减少view hierarchy的结构,提升UI渲染的性能。include标签存在着一个不好的地方,可能会导致产生多余的布局嵌套。同样通过一个小demo来说明: 比如项目中有一个公共的登录按钮布局,如下: ...
merge标签存在的意义是帮助include标签排除多余的一层ViewGroup容器,减少view hierarchy的结构,提升UI渲染的性能。include标签存在着一个不好的地方,可能会导致产生多余的布局嵌套。同样通过一个小demo来说明: 比如项目中有一个公共的登录按钮布局,如下: login.xml: ...
在Android布局中,include用于重用XML布局,减少重复代码;merge优化层级结构,避免多余ViewGroup;ViewStub按需加载布局,提升性能。 Android布局技巧之include、merge与ViewStub标签 背景介绍 在Android开发过程中,布局文件的设计至关重要,为了优化性能和提高代码重用性,官方提供了三种重要的布局标签:include、merge和ViewStub,这些标...
textView.setText("这里是来自 第二个 include布局"); ``` ### merge减少视图层级 `merge`标签可用于减少视图层级来优化布局,可以配合`include`使用,如果`include`标签的父布局 和 `include`布局的根容器是相同类型的,那么根容器的可以使用`merge`代替。