我尝试创建一个ExpandableListView,其中组标题是反向绘制的。通过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?
问候,约尔格
PS:这里的第一个问题;-)对所有在过去几个月和几年回答的人们表示感谢:很棒的人让我在12年休息后更容易找到重新进入编程的方法; - )< / p>
答案 0 :(得分:0)
如您所见,名称中带有“TextAppearance”的样式仅影响视图的前景文本属性。它们适用于android:textAppearance
属性。名称中带有“Widget”的样式定义了所有UI属性,并且将在style
属性中工作,但Android不定义“Widget.TextView.Inverse”样式。
当我想将类似控制台的日志显示为反向文本视图时,我使用了以下XML:
<TextView
android:textAppearance="@style/TextAppearance.AppCompat.Small.Inverse"
android:background="?android:colorForeground"
... />
它使用主题的前景色作为视图的背景。在黑色主题下,它在白色上显示深色文本,在浅色主题中,它在黑色上显示浅色文本。