android布局的复用

来源:互联网 发布:云led控制软件 编辑:程序博客网 时间:2024/06/13 02:20

前言

android布局的复用包括:include,merge和ViewSub。下面分别进行介绍。

include的使用

include是最常用的复用标签。通过include的layout顺序即可进行布局的复用。include虽然不是控件,但是其所有的android:layout_*属性都是有效的,前提是必须要写layout_width和layout_height两个属性。
另外,需要注意的一点是关于id的重名问题。这里提供一个解决方法:
举个例子:

<include    android:id="@+id/bookmarks"    layout="@layout/bookmarks_element" /><include android:id="@+id/bookmarks_favourite"    layout="@layout/bookmarks_element" />

假如在布局bookmarks_element中有个控件的id为bookmarks_list,此时第二个重复的控件可以通过以下对其进行实例化:

View bookmarks_container_2 = findViewById(R.id.bookmarks_favourite); bookmarks_container_2.findViewById(R.id.bookmarks_list);

层级视图标签merge的使用

<merge/>标签在UI的结构优化中起着非常重要的作用,它可以删减多余的层级,优化UI。<merge/>多用于替换FrameLayout或者当一个布局包含另一个时,<merge/>标签消除视图层次结构中多余的视图组。例如你的主布局文件是垂直布局,引入了一个垂直布局的include,这是如果include布局使用的LinearLayout就没意义了,使用的话反而减慢你的UI表现。这时可以使用<merge/>标签优化。
这个可以这样理解:即假设你想要将一个布局放到一个竖直的LinearLayout中,此时被引用的布局就不需要再使用LinearLayout进行包裹了。此时可以使用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> 标签对该布局进行引用了。系统会默认忽略 <merge>标签。

关于include,merge的官方介绍

ViewSub的使用

1 0
原创粉丝点击