Android Textview 使用SpannableString 设置 ClickableSpan 出现点击事件无效。

作者: android 发布时间: 2022-10-11 浏览: 2178 次 编辑

注意以下几点:

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);