有没有一种方法可以根据活动所设置的主题来更改样式?例如,假设我的活动具有将样式设置为TextViewStyle的TextView。
<TextView
style="@style/TextViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Text"/>
这是我的TextView样式
<style name="TextViewStyle" 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>
在我的Styles.xml文件中,我有两个主题。 <style name="AppThemeLight" parent="android:Theme.Material.Light">
</style>
<style name="AppThemeDark" parent="android:Theme.Material">
</style>
现在,当我将主题设置为Dark时,我想让这个主题覆盖我在TextViewStyle中设置的一些值。我该怎么做?我尝试了以下方法,但它不起作用。
<!-- Override TextViewStyle style for AppThemeLight-->
<style name ="AppThemeLight.TextBlockStyle" parent="@style/TextBlockStyle">
<item name="android:textColor">@color/my_purple</item>
<item name="android:textSize">20sp</item>
</style>
<!-- Override TextViewStyle style for AppThemeDark-->
<style name ="AppThemeDark.TextBlockStyle" parent="@style/TextBlockStyle">
<item name="android:textColor">@color/my_green</item>
<item name="android:textSize">40sp</item>
</style>