在Android中的Layout Res中创建子目录

时间:2017-04-07 11:56:20

标签: android

我在app上工作并不简单。有很多模块,所以我想通过创建子目录来正确管理它们。我尝试下面的结构,但仍然无法实现这一点。

 res
     layout
          camera
                main.xml

 // Structure is like this
 // res-> layout -> camera -> main.xml

默认情况下,所有xml布局文件都位于layout文件夹下。但我想在布局文件夹下创建另一个文件夹,其名称为相机,例如layout-> camera,并希望将Activity布局放在此相机文件夹下 像这样layout -> camera -> main.xml。所以,我做了它并且可以在相机文件夹下放置文件。但是现在当我打开main.xml时出现问题,当您将鼠标悬停在xmlns:android上时会出现错误:

main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 // Error: URI is not register (Setting | language | framework Schems and DTDs

我认为错误的原因是更改布局文件的路径。因为默认情况下所有文件都在布局下。我改变了道路。如何解决此错误,但请记住我希望我的布局文件位于相机文件夹下。

另外一个问题是如何在java类中访问布局的子文件夹,例如我main.xml下面有res->layout->camera文件我试过以下代码但是有错误

MainActivity

 setContentView(R.layout.camera.main);
 // Error: can not resolve symbol camera

如何解决此问题并从布局文件夹下的子文件夹中访问文件。

我搜索了一些Stackoverflow问题并找到了一些东西,但仍然没有用。

摇篮

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

请让我知道如何解决这个问题。我是android的新手。

1 个答案:

答案 0 :(得分:2)

您的ng-selected="i.id == 1" 和所有布局都应位于res / layout下,因为main.xml是包含应用所有布局的文件夹。

更改后,请转到 MainActivity 并使用:

layout

在Gradle中进行此更改:

setContentView(R.layout.main);

并且总是在gradle中更改内容时,总是会同步!

我想这可以解决你的问题。