我的应用程序有多种产品口味。每种风味都有不同的父主题,但它们在该主题下都具有相同的属性。所以我必须在各种口味下创建主题定义。 dir,并重复相同的属性。有没有更好的方法来做到这一点?
让我更清楚一点:
我有一个针对flavor1的应用程序样式:
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
// here are my common style properties
</style>
我的风味2的另一种应用风格:
<style name="AppTheme" parent="@style/Theme.AppCompat.Dark.NoActionBar">
// here are my common style properties
</style>
我不想在口味中重复共同的风格属性。资源文件目录。所以我需要像多个父定义那样的东西,例如:
<style name="CommonTheme">
// here are my common style properties
</style>
flavor1:
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar,CommonTheme">
</style>
flavor2:
<style name="AppTheme" parent="@style/Theme.AppCompat.Dark.NoActionBar,CommonTheme">
</style>
这只是一个示范,我知道不允许多个父母。
到目前为止我尝试了什么?
我认为,定义对样式的引用并将其用作父代可能是一种解决方案,例如:
flavor1:
<item name="ReferenceTheme" type="style" format="reference">@style/Theme.AppCompat.Light.NoActionBar</item>
flavor2:
<item name="ReferenceTheme" type="style" format="reference">@style/Theme.AppCompat.Dark.NoActionBar</item>
主:
<style name="AppTheme" parent="@style/ReferenceTheme">
// here are my common style properties
</style>
但它不起作用。
你有解决方法吗?