How to get rid of the underline in a Spannable String with a Clickable Object?

后端 未结 10 2142
陌清茗
陌清茗 2021-02-03 16:44

I have a Spannable Object with a Clickable Object set to it. When the Spannable String is displayed in the TextView it has bl

10条回答
  •  我在风中等你
    2021-02-03 17:23

    ANURAG RASTOGI's answer saved the day for me! I already have a formatted SpannableString on which I wanted to apply a ClickableSpan:

    spannableString.setSpan(new ClickableSpan() {
        @Override
        public void onClick(View widget) {
            // Do something...
        }
        // Prevent
        // ds.setColor(ds.linkColor);
        // ds.setUnderlineText(true);
        // in: https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/text/style/ClickableSpan.java
        // from executing.
        @Override
        public void updateDrawState(@NonNull TextPaint ds) {
            // super.updateDrawState(ds);
        }
    },0, spannableString.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
    

    The updateDrawState overrides the updateDrawState in the ClickableSpan class in Android, and by not calling super.updateDrawState it will not get executed.

    All text formatting already present in spannableString will be preserved.

提交回复
热议问题