具有不同资源的两种口味继承了一种基本口味的布局
Two flavours with different resources inheriting layout from one base flavour
我的 android 应用程序分为四种不同的构建风格。这些风格中的每一个都有一部分独特的 java
和 xml
文件,以及一部分 main
下的共享文件。为了清楚起见,我们将它们称为 Cucumber
、Tomato
、Onion
和 Pepper
。这些风格具有独特的布局、可绘制对象、字符串、颜色、java 文件等。
我现在的要求是,我需要将 Pepper
口味分成两个子口味; Red-Pepper
和 Green-Pepper
。这两种风格的布局应该是相同的——唯一的不同是这两种风格必须使用不同的 drawable
和 string
资源。出于显而易见的原因,我不想在红色和绿色风格中使用重复的布局文件。
如何在 gradle
中实现?
您可以定义多个资源文件夹。
通过这种方式,您可以将通用文件夹用于 2 种口味(在您的 redPepper 和 greenPepper 中)。
例如这样的事情:
android {
...
sourceSets {
main {
//....
res.srcDirs = ['/src/main/res']
}
redPepper {
res.srcDirs = ['/src/flavorRed/res', '/src/commonPepper/res']
}
greenPepper {
res.srcDirs = ['/src/flavorGreen/res', '/src/commonPepper/res']
}
//.....other flavors
}
}
我的 android 应用程序分为四种不同的构建风格。这些风格中的每一个都有一部分独特的 java
和 xml
文件,以及一部分 main
下的共享文件。为了清楚起见,我们将它们称为 Cucumber
、Tomato
、Onion
和 Pepper
。这些风格具有独特的布局、可绘制对象、字符串、颜色、java 文件等。
我现在的要求是,我需要将 Pepper
口味分成两个子口味; Red-Pepper
和 Green-Pepper
。这两种风格的布局应该是相同的——唯一的不同是这两种风格必须使用不同的 drawable
和 string
资源。出于显而易见的原因,我不想在红色和绿色风格中使用重复的布局文件。
如何在 gradle
中实现?
您可以定义多个资源文件夹。
通过这种方式,您可以将通用文件夹用于 2 种口味(在您的 redPepper 和 greenPepper 中)。
例如这样的事情:
android {
...
sourceSets {
main {
//....
res.srcDirs = ['/src/main/res']
}
redPepper {
res.srcDirs = ['/src/flavorRed/res', '/src/commonPepper/res']
}
greenPepper {
res.srcDirs = ['/src/flavorGreen/res', '/src/commonPepper/res']
}
//.....other flavors
}
}