¿Por qué añadir <merge> cambia el diseño de Android?

Intento incluir xml_layoutA en xml_layoutB .

Al principio no sabía que tengo que añadir la etiqueta <merge> en xml_layoutA .

Pero entonces agregué esta etiqueta y entonces el xml_layoutA comenzó siendo alineado a la izquierda en vez de a la derecha como antes.

¿Qué ha causado este cambio?

xml_layoutA.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tooltip_layout" android:layout_width="262dp" android:layout_height="92dp" android:background="@drawable/tip_tool_top_right" android:orientation="horizontal" android:paddingTop="10dp" android:paddingBottom="15dp" android:paddingLeft="5dp" android:paddingRight="10dp" > <LinearLayout ... </LinearLayout> </LinearLayout> 

Vs

 <merge xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:id="@+id/tooltip_layout" android:layout_width="262dp" android:layout_height="92dp" android:background="@drawable/tip_tool_top_right" android:orientation="horizontal" android:paddingTop="10dp" android:paddingBottom="15dp" android:paddingLeft="5dp" android:paddingRight="10dp" > <LinearLayout ... </LinearLayout> </LinearLayout> </merge> 

Ambos casos en el mismo xml_layoutB.xml

En RelativeLayout :

  <include android:id="@+id/tooltipFriends" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@id/friendsonline_bar" android:layout_alignParentRight="true" android:visibility="visible" layout="@layout/tooltip_friends" /> 

El problema que afronta se debe a que los parámetros de estos include se ignoran cuando se utiliza la etiqueta de merge .

De todos modos la etiqueta de la merge usted tiene allí no es necesaria y no está haciendo mucho para usted allí. Básicamente, la etiqueta de merge es útil cuando tiene más vistas y desea que esas vistas se incluyan en el diseño desconocido. Por ejemplo, usted tiene esas 4 etiquetas que desea ser reutilizado

 <merge> <TextView ... /> <TextView ... /> <EditText ... /> <Button ... /> </merge> 

Entonces cuando usted utiliza esto:

 <RelativeLayout> <include layout="^^" /> </RelativeLayout> 

Lo que obtendrás es esto:

 <RelativeLayout> <TextView ... /> <TextView ... /> <EditText ... /> <Button ... /> </RelativeLayout> 

Cualquier parámetro de la etiqueta de include original se descartará, ya que no hay forma de indicar a qué etiqueta deben agregarse.

  • Aplicar una máscara a una sola vista de superposición sin enmascarar toda la actividad
  • Pequeño ProgressDialog "spinner" para android
  • Cómo desactivar el efecto de rebote (tono azul cuando se desplaza hasta el final) de la vista web en android?
  • Diseño personalizado basado en el diseño existente
  • Desvanecer el borde de la imagen en una vista de imagen
  • Cambiar el color de texto de un solo ClickableSpan cuando se presiona sin afectar a otros ClickableSpans en el mismo TextView
  • El hijo de RelativeLayout no rellena la altura de RelativeLayout
  • Android: crea automáticamente variables para todos los IDs en xml
  • Android - xml - incluir el mismo diseño varias veces no funciona
  • Cómo crear un ImageView que llena la altura de los padres y muestra una imagen lo más grande posible?
  • Estilo de la casilla de verificación de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.