Android Studio中定制的产品风格?
我有一个具有多种产品风格的模块(本例中为“foo”)。基本主题(样式)在模块中定义 现在,我的想法是通过在#flavor#/res/values/文件夹中添加一个styles.xml来修改每种风格的主题,并使用库项目机制扩展该风格,就像我以前在Eclipse中所做的那样。但很明显,整个样式被覆盖了。我的意图是,gradle正在正确地将文件合并在一起Android Studio中定制的产品风格?,android,xml,gradle,styles,themes,Android,Xml,Gradle,Styles,Themes,我有一个具有多种产品风格的模块(本例中为“foo”)。基本主题(样式)在模块中定义 现在,我的想法是通过在#flavor#/res/values/文件夹中添加一个styles.xml来修改每种风格的主题,并使用库项目机制扩展该风格,就像我以前在Eclipse中所做的那样。但很明显,整个样式被覆盖了。我的意图是,gradle正在正确地将文件合并在一起 MyApp 应用程序 src main 爪哇 res\value main_styles.xml foo 爪哇 res\value
- MyApp
- 应用程序
- src
- main
- 爪哇
- res\value
- main_styles.xml
- foo
- 爪哇
- res\value
- foo_styles.xml
- main
头衔
副标题
foo_风格:
@颜色/食物
我所期望的是:
头衔
副标题
@颜色/食物
我得到的是:
@颜色/食物
有什么建议吗?他们只有在同名的情况下才会合并。将它们都称为
style.xml
编辑:您似乎无法:合并是不可能的,但通过这种方式可以实现相同的效果(AndroidManifest指的是foo,foo指的是main,main指的是android:Theme.Light)
//AndroidManifest.xml
//src/main/res/values/styles.xml
头衔
副标题
//src/foo/res/values/styles.xml
@颜色/食物
如果两个文件名相等,则会出现相同的问题:-/Hmmm。。。看来你不能:我认为这是可能的,用这个:
<style name="Theme.Main" parent="android:Theme.Light">
<item name="android:title">A title</item>
<item name="android:subtitle">A subtitle</item>
</style>
<style name="Theme.Main" parent="android:Theme.Light">
<item name="android:background">@color/foo</item>
</style>
<style name="Theme.Main" parent="android:Theme.Light">
<item name="android:title">A title</item>
<item name="android:subtitle">A subtitle</item>
<item name="android:background">@color/foo</item>
</style>
<style name="Theme.Main" parent="android:Theme.Light">
<item name="android:background">@color/foo</item>
</style>
// AndroidManifest.xml
<application ... android:theme="@style/MyStyleFoo" ...>
// src/main/res/values/styles.xml
<resources>
<style name="MyStyleMain" parent="android:Theme.Light">
<item name="android:title">A title</item>
<item name="android:subtitle">A subtitle</item>
</style>
</resources>
// src/foo/res/values/styles.xml
<resources>
<style name="MyStyleFoo" parent="MyStyleMain">
<item name="android:background">@color/foo</item>
</style>
</resources>