我正在尝试为我的 TextView 设置应用程序范围的样式,该样式具有特定的链接颜色。如果我在每个单独的 TextView 上设置
android:textColorLink
,它就可以正常工作。但是,如果我在 android:textColorLink
中的样式内设置 styles.xml
,它会继续显示正常的 android:textColor
。有其他人经历过这个或知道解决方案吗?我更愿意将其设置为样式,这样如果将来颜色发生变化,我不需要更新多个引用。
以下为每个 TextView 单独设置
android:textColorLink
的方法确实有效,并且将为普通文本显示 color1
,为链接显示
color2
。
styles.xml
:
<style name="textStyle" parent="Widget.AppCompat.TextView">
<item name="android:textColor">@color/color1</item>
</style>
布局文件:
<TextView
android:textAppearance="@style/textStyle"
android:textColorLink="@color/color2" />
android:textColorLink
,而不是在每个 TextView 上列出它,它不起作用,并且将为所有普通文本和链接显示
color1
。
styles.xml
:
<style name="textStyle" parent="Widget.AppCompat.TextView">
<item name="android:textColor">@color/color1</item>
<item name="android:textColorLink">@color/color2</item>
</style>
布局文件:
<TextView
android:textAppearance="@style/textStyle" />
android:textColorLink
可以通过
android:textAppearance
设置,因为我已经以相同的方式设置
android:textColor
。不过,看起来
android:textColorLink
只能通过
style
来设置。我不确定为什么通过样式应用颜色的方式存在这种差异。如果有更懂行的人知道原因请告诉我。
styles.xml
:
<style name="textStyle1" parent="Widget.AppCompat.TextView">
<item name="android:textColor">@color/color1</item>
</style>
<style name="textStyle2" parent="Widget.AppCompat.TextView">
<item name="android:textColorLink">@color/color2</item>
</style>
布局文件:
<TextView
android:textAppearance="@style/textStyle1"
style="@style/textStyle2" />
style
即可。
styles.xml
:
<style name="textStyle" parent="Widget.AppCompat.TextView">
<item name="android:textColor">@color/color1</item>
<item name="android:textColorLink">@color/color2</item>
</style>
布局文件:
<TextView
style="@style/textStyle" />