styles multiple inheritance
You can only inherit one style. However, you can also make the inherited style inherit from another style, and so on:
<style name="WidgetTextBase"> <item name="android:typeface">serif</item> <item name="android:textSize">12dip</item> <item name="android:gravity">center</item></style><style name="WidgetTextHeader" parent="WidgetTextBase"> <item name="android:textStyle">bold</item></style><style name="BOSText" parent="WidgetTextHeader"> <item name="android:textColor">#051C43</item></style>
You can't inherit more than one style, but you can set up an inheritance chain.
For those who was looking for solution to just merge multiple different styles into one, you can use
public void applyStyle (int resId, boolean force)
https://developer.android.com/reference/android/content/res/Resources.Theme#applyStyle(int,%20boolean). And apply it that way
context.theme.applyStyle(R.style.MyAdditionalStyle, false)
Whenever you specify true
as second argument, it overrides existing values in your theme, and when false
it adds only non-overlapping values from R.style.MyAdditionalStyle
I haven't tested scenario with multiple styles yet, but according to docs you can achieve it. So that's how this approach can be used as an alternative to multiple inheritance.