Android Textview 使用SpannableString 设置 ClickableSpan 出现点击事件无效。
作者: android 发布时间: 2022-10-11 浏览: 3427 次 编辑注意以下几点:
1. 要注意 文字要设置在 textview setText之前
2. 设置文字之后再设置 setSpan
3. textView 设置 setMovementMethod(LinkMovementMethod.getInstance())
4. 然后会有点击事件效果 ,但是字体点击时会有一个背景点击的选中效果,默认主题色, 如果不想要的话,设置 setHighlightColor(0)//透明色
demo案例代码
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setHighlightColor(Color.TRANSPARENT);
SpannableString spannableString = new SpannableString("我是一段话,我是一段话");
spannableString.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View widget) {
// 指定区域文字的 点击事件
// ......
}
@Override
public void updateDrawState(@NonNull TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(Color.RED);// 字体颜色
ds.setUnderlineText(false); // 是否有下划线
}
}, 2, 5, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
textView.setText(spannableString);