是否可以定义对主题的引用

时间:2015-12-05 20:54:08

标签: android gradle

我的应用程序有多种产品口味。每种风味都有不同的父主题,但它们在该主题下都具有相同的属性。所以我必须在各种口味下创建主题定义。 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>

但它不起作用。

你有解决方法吗?

0 个答案:

没有答案