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

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

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

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

Android 点击跳转ClickableSpan使用心得总结_第1张图片

这里注意,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());

 

 

 

你可能感兴趣的:(Android)