【问题标题】:Android Organise Layouts into Sub FoldersAndroid 将布局组织到子文件夹中
【发布时间】:2011-06-02 01:08:31
【问题描述】:

我有一个相当复杂的 android 应用程序,'layout' 文件夹的内容变得越来越大。我尝试将单个布局 xml 文件组织到子文件夹中,例如layout/buttons/, layout/activity/, layout/views/ 等。这似乎不起作用,文件夹的内容未解析到 R. 类中。

有没有办法做到这一点?

谢谢!

【问题讨论】:

标签: android layout


【解决方案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 {...} 块中?
    猜你喜欢
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 2018-03-12
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    相关资源
    最近更新 更多