¿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
.
- Diapositiva de la imagen de Android viewPager de derecha a izquierda
- Tableta Android en Emulator no está recogiendo el diseño correcto
- Desactivar oscurecimiento oscuro en el cajón de navegación
- Borde de desplazamiento de Android Navigation Drawer
- ¿Cómo establecer el ancho y la altura para la vista personalizada en forma programática?
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" />
- Android mover la disposición hasta cuando el teclado suave se muestra con viewpagers
- Android RelativeLayout fill_parent comportamiento inesperado en un ListView con diferentes alturas de fila
- Recortar el área circular del mapa de bits en Android
- ¿Cómo actualizar un GridView?
- La vista en el visor no se actualiza (no toma altura)
- ¿Por qué desaparecen los elementos cuando se desplaza el listView?
- los archivos xml de layout-land no funcionan con onConfigurationChanged call back
- Este diseño de RelativeLayout o su padre LinearLayout es inútil
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.
- En la aplicación de facturación, inventory.getPurchase es nulo en el dispositivo diferente que el pago se hizo
- Recuperación lenta de datos con android y parse.com