我有一个包含两个标签的列表视图,标题和副标题。我希望有深色和浅色背景作为用户选项。标题有textAppearanceMedium,副标题有textAppearanceSmall。我希望风格MyTheme.Dark有白色文字和MyTheme.Light有黑色文字。有没有办法为同一个TextView小部件定义多个textAppearance属性?
<style name="MyTheme.Dark">
<item name="android:windowBackground">@color/black</item>
<item name="android:colorBackground">@color/black</item>
<item name="android:background">@color/black</item>
<item name="android:divider">@color/white</item>
--cannot put textAppearance here since it is different for title and subtitle
</style>
答案 0 :(得分:4)
供将来参考......
在values / themes.xml中:
<style name="MyTheme.Dark">
<item name="textColorTitle">@color/white</item>
</style>
<style name="MyTheme.Light">
<item name="textColorTitle">@color/black</item>
</style>
在values / attrs.xml中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr
name="textColorTitle"
format="reference|color" />
</resources>
在layout / my_list_row.xml中,使用textColorTitle值作为文本颜色,如下所示:
android:textColor="?textColorTitle"
如果不起作用,请告诉我。它对我有用。
答案 1 :(得分:0)
我自己是Android的初学者,我不确定我是不是在这里做自己的屁股,但为什么不使用android:textColor属性?
<style name="MyTheme.Dark">
<item name="android:windowBackground">@color/black</item>
<item name="android:colorBackground">@color/black</item>
<item name="android:background">@color/black</item>
<item name="android:divider">@color/white</item>
<item name="android:textColor">@color/white</item>
</style>
答案 2 :(得分:0)
我认为最好的方法是为不同的颜色和主题设置不同的布局xml。根据用户选择加载布局xml。我不喜欢这个,但我没有找到任何替代方案。