Android 点击跳转ClickableSpan使用心得总结

mac2026-08-31  8

在Android日常开发中,经常遇到需要实现点击某个view或者文字跳转到其他页面或者超链接,通常我们会考虑使用ClickableSpan

具体使用方法见链接 https://blog.csdn.net/yuanpengs/article/details/26342195

例如,需要在"了解更多"添加超链接,这里使用URLSpan

这里注意,URLSpan是继承CkickableSpan 而这个点击链接事件默认是带有下划线,且很多情况是需要根据需求自定义颜色

这里提供一种方法重写updateDrawState,自己设置颜色和下划线显示,代码如下:

/** * 不带下划线的URLSpan */ public class URLSpanNoUnderline extends URLSpan { public URLSpanNoUnderline(String url) { super(url); } @Override public void updateDrawState(TextPaint drawState) { super.updateDrawState(drawState); // "#fb6522"为字体的颜色,为橙色 drawState.setColor(Color.parseColor("#fb6522")); drawState.setUnderlineText(false); } }

有时候需要实现分段点击或者指定文字有点击跳转效果,我们可以这样实现

String learnMore = getString(R.string.指定文字对应字符串xxx); String totalText = xxx; // 整句话文字对应String SpannableString spanString = new SpannableString(totalText); int length = totalText.length(); URLSpanNoUnderline noUnderlineSpan = new URLSpanNoUnderline(跳转到url地址); // 这里表示一句话最后几个指定文字有点击效果 spanString.setSpan(noUnderlineSpan, length - learnMore.length(), length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); mSmartCoachTipsTextView.setMovementMethod(LinkMovementMethod.getInstance());

 

 

 

最新回复(0)