与Gradle编辑期间重命名布局文件



我的Android Studio Project具有两个产品风味-em> a 和 b 。两者在其资源文件夹中都有一个名为 my_layout.xml 的布局。

当我为风味a构建项目时,我也想要将其布局命名为 a_my_layout.xml b_my_layout.xml 构建风味B时然后,从源代码我将用getResources().getIdentifier("a_my_layout", "layout"...)

动态获取资源ID

我希望布局的名称保留在编辑器(Android Studio)时,即保留my_layout.xml,即我不想在RES/文件夹中的布局上有很多前缀。这可能是gradle吗?

说实话,我不明白为什么要重命名它们,如果您动态加载资源,如果您在两种口味中都有布局,当加载它们,它将加载一个特定于您的风味的,但这是您的选择:)。

如果您真的想重命名它们,我认为您可以通过创建重命名脚本并将其与预定义的预建任务联系起来来实现此目标。

类似的东西(在应用程序级别gradle中):

task renameLayoutsForVariants {
   // Do the renaming here with the prefixes
}
task renameFilesBack {
  // Rename files back to the initial name
}
afterEvaluate {
     android.applicationVariants.all { variant ->
         variant.javaCompiler.dependsOn(renameLayouts)
}
renameFilesBack.dependsOn build, deploy

用于从Gradle访问资源文件,因此有大量帖子,您只需要检查它。

总而言之,您只需调整一些gradle脚本,然后将它们链接到构建/运行Android项目时运行的一些已定义的任务。

最新更新