2011-07-31 9 views
6

Tengo un diseño que es diferente para retrato y paisaje; sin embargo, en tabletas (por ejemplo, pantalla grande, clasificador de diseño xlarge), quiero usar solo la versión vertical para ambas orientaciones.Aliasing un recurso de diseño con el mismo nombre solo calificador de pantalla diferente

/res/layout/abc.xml

/res/layout-land/abc.xml

/res/layout-xlarge/abc.xml

Desde los primeros y últimos diseños son idénticos, estaba pensando en usar un alias. Pero no puedo entender desde el Android docs cómo hacer referencia a un diseño específico del calificador en mi declaración ...

Ideas?

+0

¿Por qué no carga los recursos dinámicamente en función de la resolución o relación de aspecto o de alguna condición configurando un recurso predeterminado? – sat

+1

Prefiero dejar que la plataforma se encargue de ello automáticamente ... cuanto menos código mejor ... – Yossi

+0

Se vuelve más complicado. Estoy usando estos diseños para widgets de pantalla de inicio, y aparentemente la técnica de combinación/inclusión no funciona. – Yossi

Respuesta

4

¡Estaba peleando exactamente! mismo problema y finalmente encontró una solución, por lo que incluso si la pregunta es bastante antiguo, tal vez alguien ha resultado útil diseño vertical

  1. puesta en /res/layout/abc.xml (ya lo tienes)

  2. puesta diseño paisaje en /res/layout/abc_land.xml

  3. crear el archivo con el contenido layout.xml

    <?xml version="1.0" encoding="utf-8"?> 
    <resources> 
        <item name="abc" type="layout">@layout/abc_land</item> 
    </resources> 
    
  4. copia este archivo en sus /res/values-land/ y /res/values-xlarge/ directorios

importante es, que su archivo layout.xml contiene referencia a la mejora (paisaje) presentar abc_land.xml, que se almacena también en layout directorio y también archivos están bajo values-x directorios, no layout-x una vez.

También probé a poner en el directorio disposición dos archivos abc_land.xml y abc_port.xml y crear en ellos alias de /res/values-land/, /res/values-port/ y también /res/values-xlarge/ directorios, y parece que funciona, por lo que es también una solución útil para que en los diseños de algunos "orden"!

+0

Quiere decir abc.xml, no layout.xml para el paso 3 ... – Yossi

+0

nono, creo que correctamente 'layout.xml'. Verifique esto [documentación de Android] (https://developer.android.com/training/multiscreen/screensizes.html#TaskUseAliasFilters). También hay una descripción 'Y agrega estos dos archivos ...' donde usan 'layout.xml'. Espero que si necesitas usar más alias, simplemente lo pongas como un próximo '

Cuestiones relacionadas