widgets tipos studio sgoliver poner pantalla indice fondos diferentes como android android-layout include alias dry

android - tipos - sgoliver indice



¿Cómo puedo hacer que varias configuraciones de pantalla diferentes se correlacionen con un pequeño conjunto de diseños sin tener que duplicar partes de mi diseño XML? (1)

Puede usar alias de diseño. En lugar de describir su diseño directamente en los archivos XML para cada configuración de pantalla, debe definir sus dos diseños en dos archivos XML denominados, por ejemplo, "onepane.xml" y "twopanes.xml". Estos archivos entran en res / layout.

Ahora, debe asignar estos diseños a su configuración de pantalla diferente, y ahí es donde la técnica de "alias de diseño" es útil. Para cada combinación de calificador de pantalla, cree un archivo XML en res / values-X / layout.xml, donde X es la combinación calificada. En ese archivo, declare un recurso de diseño que apunte a @ layout / onepane o @ layout / twopanes, según corresponda:

res / values-sw600dp-land / layout.xml:

<resources> <item name="main" type="layout">@layout/twopanes</item> </resources>

res / values-sw600dp-port / layout.xml:

<resources> <item name="main" type="layout">@layout/onepane</item> </resources>

Haga lo mismo para sus otras combinaciones de configuración, y de esa manera puede lograr lo que está buscando: puede asignar sus dos diseños (un panel y dos paneles) a varias configuraciones de pantalla diferentes sin tener que duplicar su diseño.

Para obtener más información al respecto, consulte la lección "Compatibilidad con pantallas múltiples" en Android Training: http://developer.android.com/training/multiscreen/screensizes.html#TaskUseAliasFilters

Mi aplicación muestra una interfaz de usuario de un panel o una interfaz de usuario de dos paneles, según la configuración de la pantalla. En pantallas más pequeñas, debe ser de un panel tanto en vertical como en horizontal. En pantallas medianas (cualquier cosa con un "ancho más pequeño" de 600dp y más), la orientación horizontal acomoda bastante bien el diseño de dos paneles, pero en la orientación vertical, debe usar el diseño de un solo panel. En pantallas más grandes, debe usar el diseño de dos paneles en ambas orientaciones. También quiero admitir los calificadores de estilo 3.2+ (como sw600dp y sw720dp), así como el calificador de "cubo de tamaño" anterior ("xlarge").

La forma más directa de hacerlo es crear varios archivos de diseño XML diferentes, uno para cada configuración:

  • res / layout-sw600dp-land / main.xml
  • res / layout-sw600dp-port / main.xml
  • res / layout-sw720dp-land / main.xml
  • res / layout-sw720dp-port / main.xml
  • res / layout-xlarge-port / main.xml
  • res / layout-xlarge-land / main.xml
  • res / layout-port / main.xml
  • res / layout / main.xml

Como resultado, hay una gran cantidad de duplicación de código en estos 8 archivos XML que esencialmente describen solo dos diseños distintos.

¿Cómo puedo hacer esto sin tener que mantener todos estos archivos XML duplicados, que son un dolor de cabeza de mantenimiento?