现在,我将每个xml布局文件存储在res/layout
文件夹中,因此管理小型项目既可行又简单,但是,在有大型项目的情况下,应该有一个层次结构和一个子目录,布局文件夹中所需的文件夹。
例如
layout
-- layout_personal
-- personal_detail.xml
-- personal_other.xml
--layout_address
-- address1.xml
-- address2.xml
同样,我们想为大型应用程序提供子文件夹,那么在android项目中有没有办法做到这一点?
我可以在layout文件夹中创建layout-personal和layout_address子文件夹,但是当需要使用R.layout ._______访问xml布局文件时,那时在xml目录中没有任何xml布局弹出窗口。菜单。
#1楼
我认为解决此问题的最佳方法(假设不允许使用子文件夹)是在文件名前加上您要放置在其中的文件夹的名称。 例如,如果您有许多用于“活动”,“片段”或只是“视图”的通用视图的布局,则应在其前面加上places_my_layout_name。 至少这解决了以在IDE中更容易找到它们的方式来组织它们的问题。 这不是最棒的解决方案,但总比没有好。
#2楼
现在,借助Android Studio和Gradle,您可以在项目中拥有多个资源文件夹。 不仅可以组织布局文件,还可以组织任何类型的资源。
它不完全是子文件夹,但可以分离应用程序的各个部分。
配置如下:
sourceSets {
main {
res.srcDirs = ['src/main/res', 'src/main/res2']
}
}
检查文档 。
#3楼
你可以用gradle做到这一点。 我做了一个演示项目,展示了如何。
诀窍是利用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布局等)的直接父级仍需要与规范相对应。
#4楼
检查将文件夹层次结构转换为单个文件夹的Bash Flatten Folder脚本
#5楼
好吧,简短的答案是没有。 但是您绝对可以有多个res
文件夹。 我认为,这与layout
文件夹的子文件夹尽可能接近。 这是您的操作方式。