Android 在TextView中设置多个样式多个点击事件
程序员文章站
2022-04-14 09:14:43
...
类似如下图功能:
有时候我们可以用多个TextView来实现,但是没法实现这种换行的,而且使用多个TextView性能上也有损耗,在Android中系统为我们提供了一个解决办法。就是使SpannableStringBuilder+ClickableSpan来实现。具体实现代码如下:
String str = "阅读完整的《用户服务协议》和《隐私政策》了解详细内容";
SpannableStringBuilder ssb = new SpannableStringBuilder();
ssb.append(str);
//第一个出现的位置
final int start = str.indexOf("《");
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
//用户服务协议点击事件
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
//设置文件颜色
ds.setColor(getResources().getColor(R.color.action_color));
// 去掉下划线
ds.setUnderlineText(false);
}
}, start, start + 8, 0);
//最后一个出现的位置
final int end = str.lastIndexOf("《");
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
//隐私协议点击事件
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
//设置文件颜色
ds.setColor(getResources().getColor(R.color.action_color));
// 去掉下划线
ds.setUnderlineText(false);
}
}, end, end + 6, 0);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setText(ssb, TextView.BufferType.SPANNABLE);
推荐阅读
-
Android中实现为TextView添加多个可点击的文本
-
Android中TextView设置不同的颜色并且可以响应点击事件
-
android TextView中识别多个url并分别点击跳转方法详解
-
Android在TextView中设置局部文字的样式(HTML和SpannableString两种方式)
-
Android中TextView设置不同的颜色并且可以响应点击事件
-
Android中实现为TextView添加多个可点击的文本
-
android TextView中识别多个url并分别点击跳转方法详解
-
Android 在TextView中设置多个样式多个点击事件
-
Android在TextView中设置局部文字的样式(HTML和SpannableString两种方式)