Linkify 的奇怪选择行为
我有一个 TextView,其中包含一些带有 URL 的文本。我已经使用 Linkify 将它们转换为可点击的 URL:
Linkify.addLinks(bodyTextView, Linkify.WEB_URLS);
但是,当我点击不是 URL 的文本时,文本颜色会发生变化。当文本视图设置为自动链接时也会发生这种情况。
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/headerLinearLay"
android:orientation="horizontal" android:padding="4px">
<ImageView
android:id="@+id/avatarImageView"
android:layout_height="48px" android:layout_width="48px"></ImageView>
<TextView
android:id="@+id/usernameTextView"
android:text="TextView"
android:paddingLeft="4dp"
android:layout_toRightOf="@id/avatarImageView"
android:layout_height="wrap_content"
android:layout_width="wrap_content"></TextView>
</RelativeLayout>
<TextView android:text="TextView" android:layout_height="wrap_content" android:id="@+id/bodyTextView" android:textSize="24sp" android:layout_width="fill_parent" android:autoLink="web"></TextView>
<TextView android:text="TextView" android:layout_height="wrap_content" android:id="@+id/dateTextView" android:layout_width="fill_parent" android:layout_weight="1"></TextView>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/toolbarLinearLayout" android:background="@color/solid_yellow" android:padding="5dip">
<Button android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/replyButton" android:text="Reply"></Button>
<Button android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="wrap_content" android:text="RT" android:id="@+id/rtButton"></Button>
<Button android:id="@+id/dmButton" android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="wrap_content" android:text="DM"></Button>
</LinearLayout>
</LinearLayout>
I have a TextView with some text that has URL's. I have used Linkify to turn them into clickable URL's:
Linkify.addLinks(bodyTextView, Linkify.WEB_URLS);
However, when I click on text that is NOT a URL the text color changes. This also happens with the textview is set to AutoLink.
Here is my layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/headerLinearLay"
android:orientation="horizontal" android:padding="4px">
<ImageView
android:id="@+id/avatarImageView"
android:layout_height="48px" android:layout_width="48px"></ImageView>
<TextView
android:id="@+id/usernameTextView"
android:text="TextView"
android:paddingLeft="4dp"
android:layout_toRightOf="@id/avatarImageView"
android:layout_height="wrap_content"
android:layout_width="wrap_content"></TextView>
</RelativeLayout>
<TextView android:text="TextView" android:layout_height="wrap_content" android:id="@+id/bodyTextView" android:textSize="24sp" android:layout_width="fill_parent" android:autoLink="web"></TextView>
<TextView android:text="TextView" android:layout_height="wrap_content" android:id="@+id/dateTextView" android:layout_width="fill_parent" android:layout_weight="1"></TextView>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/toolbarLinearLayout" android:background="@color/solid_yellow" android:padding="5dip">
<Button android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/replyButton" android:text="Reply"></Button>
<Button android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="wrap_content" android:text="RT" android:id="@+id/rtButton"></Button>
<Button android:id="@+id/dmButton" android:layout_width="fill_parent" android:layout_weight="1" android:layout_height="wrap_content" android:text="DM"></Button>
</LinearLayout>
</LinearLayout>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
添加:
到 xml 中的 TextView 元素解决了问题...似乎覆盖 textcolor 覆盖了与元素相关的其他颜色样式...请参阅这个问题: Android 文本视图颜色在禁用时不会改变
Adding:
to TextView element in xml solves problem... it seems that overriding textcolor overrides other color styles related to element... see this question: Android text view color doesn't change when disabled
这是默认行为。您可以使用 android:textColor 属性显式设置文本颜色,但单击链接时您不会看到链接有任何视觉变化。一种解决方案是设置 android:textHighlightColor 以匹配正常文本颜色。非链接文本保持不变,单击链接时您会看到视觉提示(链接的背景会变成文本其余部分的颜色)。
That is the default behaviour. You can set the text colour explicitly using the android:textColor attribute, but then you do not see any visual change to the link when it is clicked. One solution is to set android:textHighlightColor to match the normal text colour. The non-link text stays the same, and you see a visual cue when the link is clicked (the background of the link turns the colour of the rest of the text).