反向背景使用哪种样式/属性/可绘制对象?

5

我尝试创建一个可扩展的ListView,其中组标题倒置绘制。通过XML更改文本颜色、大小等没有问题。我甚至找到了如何使用系统默认值的方法,比如

<TextView  xmlns:android="http://schemas.android.com/apk/res/android"
    style="@android:style/TextAppearance.Medium.Inverse"
/>

但是对于背景颜色?!我不明白为什么这些样式不包括背景颜色信息?!

当然,我可以使用直接的颜色,但我寻找好的默认背景属性或样式。像“style/Background.For.TextAppearance.Medium.Inverse”;-)

什么是一个好的解决方案?使得在深色主题设备上我得到白色/灰色,在白色主题上我得到黑色?

或者我应该简单地使用R.color.background_light?

问候,Joerg

PS:第一个问题;-) 感谢所有在这里回答过去几个月和几年的人们:你们伟大的人让我在12年的间隔后更容易找到重新进入编程。

1个回答

0

正如您所观察到的,名称中带有“TextAppearance”的样式仅影响视图的前景文本属性。它们适用于android:textAppearance属性。名称中带有“Widget”的样式定义了所有UI属性,并且可以在style属性中使用,但Android没有定义“Widget.TextView.Inverse”样式。

当我想要将类似控制台的日志显示为反向文本视图时,我使用了以下XML:

<TextView
    android:textAppearance="@style/TextAppearance.AppCompat.Small.Inverse"
    android:background="?android:colorForeground"
    ... />

它使用主题的前景色作为视图的背景。在暗色主题下,它显示白色背景上的黑色文本,在浅色主题下,它显示黑色背景上的白色文本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接