2014-09-22 37 views
2

创建大型Android项目会导致res文件夹中的大量布局文件。 我可以通过创建子文件夹将它们分组吗? Android可以吗?我可以使用额外的目录来分组Android资源

比如我现在有:

res/ 
    /layout/ 
      /Some large list there 

而我想实现:

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

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

回答

1

答案是YES 但只有当你使用Android Studio和由此摇篮构建系统

Btw:还有一个线程code.google.com讨论此问题(Issue 2018: R.java should recognize resources in sub-directories)。
已关闭的项目成员用下面的语句:

标记此作为释放。这在Gradle build 系统中是很有可能的,因为它现在已经存在,我们将不会为其他 构建系统实现此功能。

那么您如何才能在Android Studio中实现这一点?具体方法如下:

  1. 右键点击你的布局文件夹 - >新建 - >目录 - >例如,将其命名为subfolder1
  2. 右键点击subfolder1 - >新建 - >的Android资源目录(这可能无法选择你摆在首位,参见下面的注释)
  3. 将它命名为布局布局土地布局sw600dp或任何你想它只是需要有效的布局资源文件夹
  4. 创建你的子迪尔斯个子文件夹或布局文件夹
  5. 修改您build.gradle文件是这样的:

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,您将不会 看到您的子文件夹。我认为这是一个将被修复的错误,希望有所帮助。
  • 这适用于绘图和其他各种资源类型
0

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

相关问题