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>
我们可以看到层次结构