【发布时间】:2011-08-01 12:48:31
【问题描述】:
我有一点问题,我需要在点击 clickablespan 时移除或自定义这个橙色高亮。这是我的类扩展 ClickableSpan
public class InternalClickableSpan extends ClickableSpan {
private String clicked;
@Override
public void updateDrawState(TextPaint ds) {
ds.setUnderlineText(false);
}
public InternalClickableSpan(String clickedString) {
clicked = clickedString;
}
@Override
public void onClick(View view) {
Selection.setSelection((Spannable) ((TextView)view).getText(), 0);
Toast toast = Toast.makeText(mContext, clicked, Toast.LENGTH_SHORT);
toast.show();
}
}
这就是我在文本视图中使用它的方式
Spannable spans = (Spannable) tv.getText();
spans.setSpan(new InternalClickableSpan(contacts[i]), text.indexOf(contacts[i]), text.indexOf(contacts[i])+contacts[i].length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
有人知道如何在可跨对象上自定义“点击突出显示”吗?
编辑:感谢 Aleadam 的回复,我正在覆盖 updateDrawState(请查看我的 InternalClickableSpan 类中的第一个方法),但无论如何我都找不到自定义此亮点的方法。有人有其他想法吗?谢谢
【问题讨论】:
-
尝试覆盖 updateDrawState()? developer.android.com/reference/android/text/style/…
-
@Aleadam 感谢您的回复,我正在覆盖 updateDrawState(请查看我的 InternalClickableSpan 类中的第一个方法),但无论如何我都找不到自定义此亮点的方法。有人有其他想法吗?谢谢
-
想我明白了,要禁用高亮,我们需要在 TextView 上设置 setHighlightColor(Color.TRANSPARENT) 方法
-
你找到解决办法了吗?