Android布局文件夹是否可以包含子文件夹?

现在,我将每个xml布局文件存储在res/layout文件夹中,因此管理小型项目是可行和简单的,但是如果存在大型和繁重项目的情况,那么应该有一个层次结构,布局文件夹内需要的文件夹。

例如

layout
-- layout_personal
   -- personal_detail.xml
   -- personal_other.xml
--layout_address
  -- address1.xml
  -- address2.xml

就像同样的方式,我们希望为大型应用程序提供子文件夹,那么在android项目中有没有办法这样做?

我能够在layout文件夹内创建layout-personal和layout_address子文件夹,但是当需要使用R.layout ._______访问xml布局文件时,当时没有任何xml布局弹出窗口菜单。


你可以用gradle来做到这一点。 我做了一个演示项目,展示了如何。

诀窍是使用gradle的能力来合并多个资源文件夹,并设置res文件夹以及sourceSets块中的嵌套子文件夹。

奇怪的是,在声明该文件夹的子资源文件夹之前,您无法声明容器资源文件夹。

以下是演示中build.gradle文件的sourceSets块。 请注意,子文件夹是首先声明的。

sourceSets {
    main {
        res.srcDirs =
        [
                'src/main/res/layouts/layouts_category2',
                'src/main/res/layouts',
                'src/main/res'
        ]
    }
}

嵌套资源图片

此外,实际资源文件(pngs,xml布局等)的直接父级仍然需要符合规范。


答案是不。

我想引起您对本书Pro Android 2的关注:

同样值得注意的是关于资源的一些限制。 首先,Android仅支持res中预定义文件夹内的线性文件列表。 例如,它不支持布局文件夹下的嵌套文件夹 (或res下的其他文件夹)。

其次,资源文件夹和res下的原始文件夹之间有一些相似之处。 这两个文件夹都可以包含原始文件,但原始文件中的文件被视为资源,而资产中的文件则不是。

请注意,由于资产文件夹的内容不被视为资源,因此您可以在其中放置任意层级的文件夹和文件


我只是想为有困难的人添加eskis'梦幻般的答案。 (注意:这只会在'项目'视图内看起来像单独的目录,而不幸的是'android'视图。)

测试以下内容。 BuildToolsVersion = 23.0.0 gradle 1.2.3&1.3.0

这就是我如何与已经建成的项目合作。

  • 将所有XML文件从布局目录中复制出来,然后将它们放到桌面上的某个目录中或备份。
  • 删除整个布局目录(确保你从第1步开始备份了所有内容!)
  • 右键单击res目录并选择新建>目录。
  • 命名这个新目录“布局”。 (这可以是任何你想要的,但它不会是一个'片段'目录或'活动'目录,后面会有)。
  • 右键单击新的“布局”目录并选择新建>目录。 (这将是您将在其中包含的XML文件类型的名称,例如'fragments'和'activities')。
  • 右键单击'片段'或'活动'目录(注意:这不一定是'片段'或'活动',这就是我正在使用的例子)并再次选择新的>目录并命名此目录“布局”。 (注意:这必须命名为'布局'!!!非常重要)。
  • 将您想要的XML文件放入您在桌面上创建的备份中新的“布局”目录中。
  • 根据需要重复步骤5 - 7以获得尽可能多的自定义目录。
  • 一旦完成,进入你的模块gradle.build文件并创建一个像这样的sourceSets定义...(确保'src / main / res / layouts'&'src / main / res'总是最下面的两个! !!就像我在下面展示的那样)。

    sourceSets {
        main {
            res.srcDirs =
                    [
                            'src/main/res/layouts/activities',
                            'src/main/res/layouts/fragments',
                            'src/main/res/layouts/content',
                            'src/main/res/layouts',
                            'src/main/res'
                    ]
        }
    }
    
  • 利润$$$$

  • 但严重的是,这是我如何运作的。 让我知道如果任何人有任何问题..我可以尝试帮助。

    图片比文字更值得。

    目录结构

    链接地址: http://www.djcxy.com/p/84749.html

    上一篇: Can the Android Layout folder contain subfolders?

    下一篇: Can I underline text in an android layout?