2010-12-31 18 views
28

Tengo una aplicación de Android bastante compleja, el contenido de la carpeta 'diseño' es cada vez más grande. Intenté organizar los archivos xml de diseño individual en subcarpetas, p. Ej. layout/buttons /, layout/activity /, layout/views/etc. Esto no parece funcionar, el contenido de las carpetas no se analiza en la clase R.Android Organizar diseños en carpetas secundarias

¿Hay alguna manera de hacerlo?

Gracias!

+1

duplicado posible de [¿Puede la carpeta Disposición Android contener subcarpetas?] (Http://stackoverflow.com/questions/4930398/can-the-android-layout -folder-contiene-subcarpetas) –

Respuesta

22

No creo que puedas hacer esto. Creo que solo admite ciertos nombres de carpeta como layout-large, layout-mdpi, layout-hdpi, layout-fr, etc. Puede usar más de una de estas modificaciones y también layout-fr-hdpi-large.

Esta página muestra todos los modificadores permitidos

http://developer.android.com/guide/topics/resources/providing-resources.html

+2

Él está hablando de subcarpetas, por ejemplo 'layout-hdpi/buttons/mybutton.xml', no las carpetas de recursos en sí. – KingCrunch

+3

Aún así, esto no es compatible. Ojalá pudieras hacer esto también. Con una interfaz de usuario personalizada, puede terminar con MUCHOS diseños y recursos dibujables en una carpeta. Esperemos que lo agreguen en una versión futura del SDK> – kcoppock

+4

Marcado como respuesta técnicamente correcta, esto no es posible actualmente. Estoy explorando alternativas como empaquetar mis vistas en proyectos separados. – longhairedsi

17

Otra opción es utilizar un prefijo para sus diferentes puntos de vista. No es tan bueno como tener una carpeta diferente, pero puede introducir algo de orden.

9

Ahora con Android Studio y Gradle, puede tener múltiples carpetas de recursos en su proyecto. Permitiendo organizar no solo sus archivos de diseño sino también cualquier tipo de recursos.

No es exactamente una subcarpeta, pero puede separar partes de su aplicación.

La configuración es la siguiente:

sourceSets { 
    main { 
     res.srcDirs = ['src/main/res', 'src/main/res2'] 
    } 
} 

Comprobar la documentation.

+1

nombre de archivo en conflicto. – Gohan

+0

hola, intenté con su solución, pero al ejecutar la compilación, dice: No se pudo encontrar la propiedad 'res' en el conjunto de origen 'principal'. – Apperside

+0

¿Intentó agregar los sets de origen en el bloque de Android {...}? –

Cuestiones relacionadas