如果我设置颜色简单的方式,像这个android:textColor=?myThemeVariable
,然后我得到膨胀错误。如何解决这个问题?
如果我理解正确的话,您正在寻找的是您的TextView
或其他视图要与暗模式和亮模式的配置对齐,对吗?
所以你需要两个style.xml
文件。
- res/可拉的/价值/themes.xml
- res/可拉的/价值/themes.xml(晚上)
在每一个里面你需要分配颜色如下:
<item name="android:textColorPrimary">@color/white</item>
(night)
<item name="android:textColorPrimary">@color/black</item>
(light)
所以当你想在TextView
中遵循这一规则时,你可以使用?android:textColorPrimary
,如下所示:
android:textColor = "?android:textColorPrimary"
另一个选择是不使用themes
,你可以创建两个colors.xml
- 值/colors.xml
- values-night/colors.xml
这样就有了相同名称的颜色但是改变了十六进制,所以没有了
<color name="md_theme_light_text_color">#000000</color>
<color name="md_theme_dark_text_color">#ffffff</color>
在每个colors.xml
上使用:
<color name="textColor">#000000</color> //values/colors.xml
<color name="textColor">#ffffff</color> //values-nigh/colors.xml
所以在你的xml中你可以使用textColor
如下:
android:textColor = "@color/textColor"