В моем модуле два атрибута cardStyle определены в одном файле следующим образом:
-> module / src / main / res / values / styles.xml
<declare-styleable name="customAttr">
<attr name="cardStyle" format="reference" />
<attr name="settingsCardStyle" format="reference" />
</declare-styleable>
<style name="CardStyle" parent="CardView">
<item name="cardCornerRadius">0dp</item>
<item name="cardElevation">0dp</item>
<item name="android:layout_marginEnd">0dp</item>
<item name="android:layout_marginStart">0dp</item>
<item name="android:layout_marginTop">0dp</item>
<item name="android:layout_marginBottom">0dp</item>
</style>
<style name="SettingsCardStyle" parent="CardView">
<item name="android:layout_marginEnd">16dp</item>
<item name="android:layout_marginStart">16dp</item>
<item name="android:layout_marginTop">16dp</item>
<item name="android:layout_marginBottom">59dp</item>
</style>
После этого я хочу переопределить settingsCardStyle, ссылаясь на cardStyle в моем аромате, который находится в компоненте моего приложения:
-> app / src / flavour / res / values / styles.xml
<style name="CardStyle" parent="CardView">
<item name="cardCornerRadius">8dp</item>
<item name="cardElevation">6dp</item>
<item name="android:layout_marginEnd">16dp</item>
<item name="android:layout_marginStart">16dp</item>
<item name="android:layout_marginTop">10dp</item>
<item name="android:layout_marginBottom">10dp</item>
</style>
<style name="SettingsCardStyle">
<item name="cardStyle">@style/CardStyle</item>
//using the following, the style works but it is redundant.
<!--<item name="cardCornerRadius">8dp</item>-->
<!--<item name="cardElevation">6dp</item>-->
<!--<item name="android:layout_marginEnd">16dp</item>-->
<!--<item name="android:layout_marginStart">16dp</item>-->
<!--<item name="android:layout_marginTop">10dp</item>-->
<!--<item name="android:layout_marginBottom">10dp</item>-->
</style>
Я должен упомянуть, что у меня есть CommonTheme, как показано ниже:
-> app / src / main / res / values / styles.xml
<style name="CommonTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:fontFamily">@font/open_sans</item>
<item name="fontFamily">@font/open_sans</item>
<item name="cardStyle">@style/CardStyle</item>
<item name="settingsCardStyle">@style/SettingsCardStyle</item>
</style>
Но это не работает,Основное приложение распознает стиль в модуле, но ароматизированное приложение не ...
Что я делаю не так?