Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用其他目录对Android资源进行分组吗_Android_Android Layout - Fatal编程技术网

我可以使用其他目录对Android资源进行分组吗

我可以使用其他目录对Android资源进行分组吗,android,android-layout,Android,Android Layout,创建大型Android项目将导致res文件夹中出现大量布局文件。 我可以通过创建子文件夹对它们进行分组吗?在安卓系统中有可能吗 例如,我现在拥有的: res/ /layout/ /Some large list there 我想要实现的是: res/ /layout/ /subfolder1/ /layout1.xml /view1.xml ...... /subfolder2

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

例如,我现在拥有的:

res/
    /layout/
           /Some large list there
我想要实现的是:

res/
   /layout/
      /subfolder1/
         /layout1.xml
         /view1.xml
         ......
      /subfolder2
         /another_layout.xml
         /another_view.xml
我试图这样做,但编译错误。
谢谢你的帮助。

不,你不能。对于不同的屏幕密度/大小和语言,您可以使用不同的文件夹。有些文档

很遗憾,您不能。android项目结构非常有限。请参见

答案是是,但前提是您使用的是Android Studio和Gradle构建系统

顺便说一句:code.google.com上也有一个帖子在讨论这个问题()。
已由项目成员以以下声明关闭:

将此标记为已发布。在Gradle构建中,这在很大程度上是可能的 系统,因为它存在于今天,我们不会为其他人实施这一点 建立系统

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

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

  • 结果如下所示:

    需要注意的事项:

    • 您可能需要在两者之间同步Gradle,否则将无法同步 在子文件夹中创建“Android资源目录”
    • 如果你在Android Studio中使用Android视图,你不会 看到你的子文件夹。我认为这是一个固定的bug。 希望如此
    • 这也适用于Drawable和所有其他资源类型
    android {
        // Other stuff
        sourceSets {
            main {
                res.srcDirs =
                        [
                          '/src/main/res/layout/subfolder1',
                          '/src/main/res/layout/subfolder2',
                          '/src/main/res'
                        ]
            }
        }
    }