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 将布局组织到子文件夹中的主要内容,如果未能解决你的问题,请参考以下文章

根据扩展名将git repo文件移动到子文件夹

Android中将布局文件转成bitmap

组织 kivy 布局和类

Android - 劫持点击[关闭]

将目录文件复制到子文件夹中

将框架和本机运行时文件移动到子文件夹中