Android Textview 使用SpannableString 设置 ClickableSpan 出现点击事件无效。
作者: android 发布时间: 2022-10-11 浏览: 2869 次 编辑注意以下几点:
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);