Android XML布局中的<merge>和<include>用法的简单示例

我很好奇Android的XML布局中的<merge><include>标签。 我已经阅读了两篇教程,但尚未find一个简单的示例用法。

如果有人能提供这样一个例子或给一个指针,会很高兴。

some_activity.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> // some views <include layout="@layout/view_part"/> // probably more views </LinearLayout> 

view_part.xml

 <merge xmlns:android="http://schemas.android.com/apk/res/android"> // the views to be merged </merge> 

有一个简单的Android XML布局<include /> HOWTO,它也解释了http://www.coboltforge.com/2012/05/tech-stuff-layout/上的常见错误。; 这可能有帮助…

举个例子:

我有两个标签<EditText><ListView >来不止一个用户界面。 所以我创build了一个如下所示的XML文件来包含在所有这样的UI中。

 <?xml ...> <EditText ... /> <ListView ... /> 

上面的XML不是有效的XML,因为它没有根元素。 所以仅仅为了XML就需要一个根元素。 解决scheme如下:

 <?xml ...> <merge xmlns:android="http://schemas.android.com/apk/res/android"> <EditText ... /> <ListView ... /> </merge> 

编号不粘贴代码,否则相对布局参数将工作。 它做了一些不同的处理

<merge>标记用于减less级别的数量以提高渲染布局的性能。 标签完美地与<include>标签一起使用。

举一个例子,我们有一个login布局,用于多个应用程序的范围。 使用标签来显示login_layout时,我们可以使用并且可以逃脱一个关卡。

我也build议你阅读关于布局的技巧。 http://android-developers.blogspot.com.tr/2009/03/android-layout-tricks-3-optimize-by.html

login_form.xml

 <?xml version="1.0" encoding="utf-8"?> <!-- Login form --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <EditText android:id="@+id/email" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Email..." android:inputType="textEmailAddress" android:maxLines="1" android:singleLine="true" android:visibility="visible" /> <EditText android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Password.." android:imeActionId="@+id/login" android:imeOptions="actionUnspecified" android:inputType="textPassword" android:maxLines="1" android:singleLine="true" android:text="1337" android:visibility="visible" /> <Button android:id="@+id/sign_in_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="16sp" android:paddingLeft="32sp" android:paddingRight="32sp" android:text="Login" android:visibility="visible" /> </LinearLayout> 

example_layout.xml (我们想要包含login_form.xml的任何布局)

 <merge xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" > <include layout="@layout/login_form" /> </merge> 

我们可以看到层次结构 在这里输入图像描述