现在,我将每个XML布局文件都存储在‘res/layout’文件夹中,因此管理小项目是可行且简单的,但是如果是大型项目,那么布局文件夹中应该有一个层次 struct 和子文件夹.

例如.

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做到这一点.我已经做了demo project分来说明如何做到这一点.

诀窍是使用gradle的能力设置为merge multiple resource folders,并在sourceSets块中设置res文件夹以及嵌套的子文件夹.

奇怪的是,在声明容器资源文件夹的子资源文件夹之前,不能声明该文件夹.

下面是构建中的sourceSets块.演示中的gradle文件.请注意,首先声明子文件夹.

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

嵌套资源图片

此外,您的实际资源文件(PNG、XML布局等)的直接父文件.仍然需要与specification相对应.

Android相关问答推荐

无法安装后重新编译android代码'

Android和Rust,OpenSSL交叉编译在ARM V7上链接失败

无法在Android Gradle中同步Chaquopy版本

如何在Android Jetpack Compose中找到我的手机屏幕一行有多少个单词

如何更新Kotlin中的显示?

在 Compose 中,当用户持续向下滚动时,LazyColumn 不会显示新项目

如何使用滑行加载媒体的专辑封面?

如何在 Jetpack Compose 中对数据类进行 Parcelize

Kotlin 协程、 retrofit 、android

如何用jetpack compose实现垂直李克特量表

如何在 React Native 中调试网络响应

如何在 Jetpack Compose 中设置行宽等于 TextField 的宽度?

如何在组件之间导航

观察软键盘可见性,打开/关闭 Jetpack Compose

处理程序 postDelayed 方法不起作用,kotlin 应用程序卡在启动画面上

如何在jetpack compose中创建水印文字效果

如何在jetpack compose中创建自定义rememberState?

在 Jetpack Compose 中 Select 要省略的文本

Android Studio (Kotlin):无法启动活动

将生成的 AAR 与 Composables 一起使用时未解决的参考