如何设置默认 android:textColorLink

问题描述 投票:0回答:1

我正在尝试为我的 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 xml textview textcolor
1个回答
0
投票
发帖后不久,一位同事就帮我找到了解决方案。我假设

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" />


这也可以进行一些清理,因此您只需在 TextView 上设置

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" />
    
© www.soinside.com 2019 - 2024. All rights reserved.