如今,我将每一个xml布局文件存储在res/layout
文件夹中,所以管理小型项目既可行又简单,可是,在有大型项目的状况下,应该有一个层次结构和一个子目录,布局文件夹中所需的文件夹。 html
例如 android
layout -- layout_personal -- personal_detail.xml -- personal_other.xml --layout_address -- address1.xml -- address2.xml
一样,咱们想为大型应用程序提供子文件夹,那么在android项目中有没有办法作到这一点? git
我能够在layout文件夹中建立layout-personal和layout_address子文件夹,可是当须要使用R.layout ._______访问xml布局文件时,那时在xml目录中没有任何xml布局弹出窗口。菜单。 github
我认为解决此问题的最佳方法(假设不容许使用子文件夹)是在文件名前加上您要放置在其中的文件夹的名称。 例如,若是您有许多用于“活动”,“片断”或只是“视图”的通用视图的布局,则应在其前面加上places_my_layout_name。 至少这解决了以在IDE中更容易找到它们的方式来组织它们的问题。 这不是最棒的解决方案,但总比没有好。 bash
如今,借助Android Studio和Gradle,您能够在项目中拥有多个资源文件夹。 不只能够组织布局文件,还能够组织任何类型的资源。 ide
它不彻底是子文件夹,但能够分离应用程序的各个部分。 布局
配置以下: gradle
sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res2'] } }
检查文档 。 ui
你能够用gradle作到这一点。 我作了一个演示项目,展现了如何。 spa
诀窍是利用gradle的功能合并多个资源文件夹 ,并在sourceSets块中设置res文件夹以及嵌套的子文件夹。
奇怪的是,您不能在声明该容器的子资源文件夹以前声明一个容器资源文件夹。
如下是演示中build.gradle文件中的sourceSets块。 请注意,首先声明了子文件夹。
sourceSets { main { res.srcDirs = [ 'src/main/res/layouts/layouts_category2', 'src/main/res/layouts', 'src/main/res' ] } }
此外,实际资源文件(png,xml布局等)的直接父级仍须要与规范相对应。
检查将文件夹层次结构转换为单个文件夹的Bash Flatten Folder脚本
好吧,简短的答案是没有。 可是您绝对能够有多个res
文件夹。 我认为,这与layout
文件夹的子文件夹尽量接近。 这是您的操做方式。