Well, thatβs how I achieved this, 1 hour after posting the question! May be useful for someone else!
At first in attrs.xml I defined the following:
<attr name="textBlockStyle" format="reference"/>
In my .xml style
<style name="TextBlockStyle" parent="android:style/Widget.TextView"> <item name="android:textStyle">bold</item> <item name="android:textSize">8sp</item> <item name="android:textColor">@android:color/holo_blue_dark</item> </style> <style name="AppThemeLight" parent="android:Theme.Material.Light"> <item name="android:windowNoTitle">true</item> <item name="textBlockStyle">@style/AppThemeLightTextBlockStyle</item> </style> <style name="AppThemeDark" parent="android:Theme.Material"> <item name="android:windowNoTitle">true</item> <item name="textBlockStyle">@style/AppThemeDarkTextBlockStyle</item> </style> <style name ="AppThemeLightTextBlockStyle" parent="@style/TextBlockStyle"> <item name="android:textColor">@color/my_purple</item> <item name="android:textSize">20sp</item> </style> <style name ="AppThemeDarkTextBlockStyle" parent="@style/TextBlockStyle"> <item name="android:textColor">@color/my_green</item> <item name="android:textSize">40sp</item> </style>
Notice how I use the attribute that I defined to reference the style
<item name="textBlockStyle">@style/AppThemeLightTextBlockStyle</item>
Finally, on my element, I set a style similar to this: style = "textBlockStyle":
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" style="?textBlockStyle" android:text="THIS IS SOME STLE...." android:gravity="center" />
When I set the activity theme to dark or light, the correct textButtenStyle will be used
source share