
paresh mayani
En este momento, estoy almacenando cada archivo de diseño XML dentro de la carpeta ‘res/layout’, por lo que es factible y simple administrar proyectos pequeños, pero cuando hay un caso de proyectos grandes y pesados, debe haber una jerarquía y subcarpetas necesarias dentro de la carpeta de diseño.
por ejemplo
layout
-- layout_personal
-- personal_detail.xml
-- personal_other.xml
--layout_address
-- address1.xml
-- address2.xml
De la misma manera, nos gustaría tener subcarpetas para la aplicación grande, entonces, ¿hay alguna forma de hacerlo dentro del proyecto de Android?
Puedo crear subcarpetas layout-personal y layout_address dentro de la carpeta de diseño, pero cuando llega el momento de acceder al archivo de diseño XML usando R.layout._______, en ese momento no hay ninguna ventana emergente de diseño XML dentro de la menú.

esquí
PUEDES hacer esto con gradle. he hecho un proyecto de demostración mostrando cómo.
El truco es usar la capacidad de gradle para combinar varias carpetas de recursosy configure la carpeta res y las subcarpetas anidadas en el bloque sourceSets.
La peculiaridad es que no puede declarar una carpeta de recursos de contenedor antes de declarar las carpetas de recursos secundarias de esa carpeta.
A continuación se muestra el bloque sourceSets del archivo build.gradle de la demostración. Observe que las subcarpetas se declaran primero.
sourceSets {
main {
res.srcDirs =
[
'src/main/res/layouts/layouts_category2',
'src/main/res/layouts',
'src/main/res'
]
}
}

Además, el padre directo de sus archivos de recursos reales (pngs, diseños xml, etc.) aún debe corresponder con el especificación.

100 rabh
La respuesta es no.
Me gustaría llamar su atención sobre este libro. Pro Android 2 que dice:
También vale la pena señalar algunas limitaciones con respecto a los recursos. Primero, Android solo admite una lista lineal de archivos dentro de las carpetas predefinidas en res. por ejemplo,
no admite carpetas anidadas en la carpeta de diseño (o las otras carpetas bajo res).
En segundo lugar, existen algunas similitudes entre la carpeta de activos y la carpeta sin formato en res. Ambas carpetas pueden contener archivos sin formato, pero los archivos dentro de raw se consideran recursos y los archivos dentro de activos no lo son.
Tenga en cuenta que debido a que el contenido de la
activos carpeta no se consideran recursos, puede poner una jerarquía arbitraria de carpetas y archivos dentro
eso.
Solo quería agregar a la fantástica respuesta de eskis para las personas que tienen problemas. (Nota: esto solo funcionará y se verá como directorios separados dentro de la vista ‘proyecto’, no en la vista ‘android’ desafortunadamente).
Probado con lo siguiente. BuildToolsVersion = 23.0.0 gradle 1.2.3 y 1.3.0
Así es como conseguí que el mío funcionara con un proyecto ya construido.
- Copie todos los archivos XML de su directorio de diseño y colóquelos en un directorio en el escritorio o algo así para hacer una copia de seguridad.
- Elimine todo el directorio de diseño (¡¡Asegúrese de haber hecho una copia de seguridad de todo desde el paso 1!)
- Haga clic con el botón derecho en el directorio res y seleccione nuevo > directorio.
- Nombre este nuevo directorio “diseños”. (Esto puede ser lo que quieras, pero no será un directorio de ‘fragmento’ o un directorio de ‘actividad’, eso viene después).
- Haga clic con el botón derecho en el nuevo directorio “diseños” y seleccione nuevo > directorio. (Este será el nombre del tipo de archivos XML que tendrá, por ejemplo, ‘fragmentos’ y ‘actividades’).
- Haga clic derecho en el directorio ‘fragmento’ o ‘actividades’ (Nota: esto no tiene que ser ‘fragmento’ o ‘actividades’, eso es lo que estoy usando como ejemplo) y seleccione nuevo> directorio una vez más y asigne un nombre a este directorio “diseño”. (Nota: ¡Esto DEBE llamarse ‘diseño’! Muy importante).
- Coloque los archivos XML que desee dentro del nuevo directorio de ‘diseño’ de la copia de seguridad que realizó en su escritorio.
- Repita los pasos 5 a 7 para tantos directorios personalizados como desee.
-
Una vez que esto esté completo, vaya al archivo gradle.build de sus módulos y cree una definición de sourceSets como esta… (¡Asegúrese de que ‘src/main/res/layouts’ y ‘src/main/res’ sean siempre los dos últimos! !! Como muestro a continuación).
sourceSets {
main {
res.srcDirs =
[
'src/main/res/layouts/activities',
'src/main/res/layouts/fragments',
'src/main/res/layouts/content',
'src/main/res/layouts',
'src/main/res'
]
}
}
-
Beneficio $$$$
Pero en serio… así es como lo hice funcionar. Avíseme si alguien tiene alguna pregunta. Puedo tratar de ayudar.
Las imágenes valen más que las palabras.

No es posible, pero la carpeta de diseño está ordenada por nombre. Entonces, antepongo los nombres de los archivos de diseño con los nombres de mis paquetes. Por ejemplo, para los dos paquetes “comprar” y “jugar”:
buying_bought_tracks.xml
buying_buy_tracks.xml
playing_edit_playlist.xml
playing_play_playlist.xml
playing_show_playlists.xml

Sharpe
yo suelo Agrupación de archivos de Android complemento para Android Studio. Realmente no le permite crear subcarpetas, pero puede MOSTRAR sus archivos y recursos COMO están en diferentes carpetas. Y esto es exactamente lo que quería.
Puede instalar el complemento “Agrupación de archivos de Android” por
Ventanas:
Android Studio -> Archivo -> Configuración -> Complementos.
Mac:
Android Studio -> Pestaña de Android Studio (arriba a la izquierda) -> Preferencias -> Complementos -> Instalar el complemento de JetBrains..
Para Mac, pude probarlo y no pude buscar el complemento. Así que descargué el complemento de aquí y usó el Install plugin from disk
opción de la configuración anterior.

botbot
Creo que la solución más elegante a este problema (dado que las subcarpetas no están permitidas) es anteponer los nombres de los archivos con el nombre de la carpeta en la que lo habría colocado. Por ejemplo, si tiene un montón de diseños para una Actividad, Fragmento o simplemente una vista general llamados “lugares”, entonces debe anteponerlos con places_my_layout_name. Al menos esto resuelve el problema de organizarlos de manera que sean más fáciles de encontrar dentro del IDE. No es la solución más increíble, pero es mejor que nada.
Ahora, con Android Studio y Gradle, puede tener varias 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 así:
sourceSets {
main {
res.srcDirs = ['src/main/res', 'src/main/res2']
}
}
Comprobar el documentación.
Igual que: stackoverflow.com/questions/2547100/…
– Sebastián Roth
8 de febrero de 2011 a las 7:10
Creo que este enlace podría ayudarte en detalle. blog.mindorks.com/…
– Dilip Poudel
24 de septiembre de 2017 a las 6:31