Android 将布局组织到子文件夹中
Posted
技术标签:
【中文标题】Android 将布局组织到子文件夹中【英文标题】:Android Organise Layouts into Sub Folders 【发布时间】:2011-06-02 01:08:31 【问题描述】:我有一个相当复杂的 android 应用程序,'layout' 文件夹的内容变得越来越大。我尝试将单个布局 xml 文件组织到子文件夹中,例如layout/buttons/, layout/activity/, layout/views/ 等。这似乎不起作用,文件夹的内容未解析到 R. 类中。
有没有办法做到这一点?
谢谢!
【问题讨论】:
Can the Android Layout folder contain subfolders?的可能重复 【参考方案1】:我认为你无法做到这一点。我相信它只支持某些文件夹名称,例如 layout-large, layout-mdpi、layout-hdpi、layout-fr 等。您可以使用多个这些修改以及 layout-fr-hdpi-large。
此页面显示所有允许的修饰符
http://developer.android.com/guide/topics/resources/providing-resources.html
【讨论】:
他在谈论子文件夹,例如layout-hdpi/buttons/mybutton.xml
,而不是资源文件夹本身。
仍然不支持。我希望你也能做到这一点。使用自定义 UI,您最终可以在一个文件夹中获得大量布局和可绘制资源。希望他们在 SDK 的未来版本中添加此功能>
标记为答案在技术上是正确的,这目前是不可能的。我正在探索替代方案,例如将我的观点打包到单独的项目中。【参考方案2】:
另一种选择是为不同的视图使用前缀。不如有不同的文件夹好,但它可以引入一些顺序。
【讨论】:
【参考方案3】:现在使用 Android Studio 和 Gradle,您可以在项目中拥有多个资源文件夹。不仅可以组织您的布局文件,还可以组织任何类型的资源。
它不完全是一个子文件夹,但可能会分隔您的应用程序的各个部分。
配置是这样的:
sourceSets
main
res.srcDirs = ['src/main/res', 'src/main/res2']
检查documentation。
【讨论】:
文件名会冲突。 你好,我尝试了你的解决方案,但是在运行构建时它说:在源集'main'上找不到属性'res'。 您是否尝试将 sourceSets 添加到 android ... 块中?以上是关于Android 将布局组织到子文件夹中的主要内容,如果未能解决你的问题,请参考以下文章