tag inside xml android layout merge include

xml - inside - android viewstub



Ejemplo simple de uso de<merge> y<include> en diseƱos XML de Android (5)

Tengo curiosidad sobre las etiquetas <merge> y <include> en los diseños XML de Android. He leído dos tutoriales, pero aún no he encontrado un uso de ejemplo simple.

Sería feliz si alguien pudiera dar ese ejemplo o darle un puntero a uno.



Tome un ejemplo:

Tengo dos etiquetas <EditText> y <ListView > vienen con más de una UI. Así que creé un archivo XML como se indica a continuación para incluirlo en todas las UI.

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

El XML anterior no es XML válido ya que no tiene un elemento raíz. Por lo tanto, se necesita un elemento raíz solo por el bien de XML. <merge> es la solución que se muestra a continuación:

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


id no pega el código; de lo contrario, los parámetros de diseño relativos habrían funcionado. Hace algunos procesos diferentes


<merge> etiqueta <merge> se usa para mitigar el número de niveles para aumentar el rendimiento de los diseños de representación. la etiqueta se usa con la etiqueta <include> perfectamente juntas.

Tomemos un ejemplo, tenemos un diseño de inicio de sesión y lo usamos para más de uno en el alcance de nuestra aplicación. Mientras usamos tag para mostrar login_layout, podemos usar y podemos escapar de un nivel.

También te aconsejo que leas los trucos sobre los diseños. 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 (cualquier diseño que deseemos incluir 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>

Podemos ver la jerarquía de niveles


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>