我可以使用其他目录来分组Android资源

时间:2014-09-22 09:26:11

标签: android android-layout

创建大型Android项目将导致res文件夹中的大量布局文件。 我可以通过创建子文件夹对它们进行分组吗? Android中有可能吗?

例如我现在所拥有的:

res/
    /layout/
           /Some large list there

我想要实现的目标:

res/
   /layout/
      /subfolder1/
         /layout1.xml
         /view1.xml
         ......
      /subfolder2
         /another_layout.xml
         /another_view.xml

我试图这样做,但得到了编译错误。 感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

答案是 YES ,但前提是您正在使用Android Studio,因此只能使用Gradle Build System

顺便说一下: code.google.com 上还有一个讨论此问题的帖子(Issue 2018: R.java should recognize resources in sub-directories)。
它已由项目成员关闭,声明如下:

  

将此标记为已发布。这在Gradle构建中很有可能   现在存在的系统,我们不会为其他人实现这个   建立系统。

那么你如何在Android Studio中实现这一点?方法如下:

  1. 右键单击布局文件夹 - >新 - > 目录 - >将其命名为的 subfolder1
  2. 右键单击子文件夹1 - >新 - > Android资源目录(首先可能无法选择,请参阅下面的说明)
  3. 将其命名为 layout layout-land layout-sw600dp 或任何您想要的只需要有效的布局资源文件夹
  4. 在子目录中创建更多子文件夹或布局文件夹
  5. 像这样修改您的build.gradle文件:

  6. android {
        // Other stuff
        sourceSets {
            main {
                res.srcDirs =
                        [
                          '/src/main/res/layout/subfolder1',
                          '/src/main/res/layout/subfolder2',
                          '/src/main/res'
                        ]
            }
        }
    }
    

    结果如下所示:

    sub directories in layout folder

    有些注意事项:

    • 您可能需要在两者之间同步Gradle,否则您将无法使用 在子文件夹中创建“Android资源目录
    • 如果您在Android Studio中使用Android-View,则不会 看到你的子文件夹。我认为这是一个将被修复的错误, 希望。
    • 这适用于drawable和其他所有资源类型

答案 1 :(得分:0)

不,你不能。您可以拥有的是针对不同屏幕密度/大小和语言的不同文件夹。 Here一些文档

答案 2 :(得分:0)

不幸的是你不能。 android项目结构非常有限。见Grouping Resource Types