AndroidUtilCode icon indicating copy to clipboard operation
AndroidUtilCode copied to clipboard

SpanUtils 设置点击事件后,设置点击事件文字的颜色失效

Open yuandoudou928 opened this issue 2 years ago • 4 comments

描述 Bug

简洁地描述下 Bug。

  • AndroidUtilCode 的版本:1.31.0

相关代码

        SpanUtils.with(mDatabind.tvAgree)
            .append("我已阅读并同意").setForegroundColor(Color.parseColor("#FFD5D5D5"))
            .append("天天短视频用户协议").setForegroundColor(Color.parseColor("#000000"))
            .setClickSpan(object : ClickableSpan() {
                override fun onClick(p0: View) {
                    ToastUtils.showShort("天天短视频用户协议")
                }
            })
            .append("和").setForegroundColor(Color.parseColor("#FFD5D5D5"))
            .append("隐私条款").setForegroundColor(Color.parseColor("#000000")).setQuoteColor(Color.parseColor("#000000"))
            .setClickSpan(object : ClickableSpan() {
                override fun onClick(p0: View) {
                    ToastUtils.showShort("隐私条款")
                }
            })
            .create()

yuandoudou928 avatar Apr 12 '22 10:04 yuandoudou928

@Blankj SpanUtils 的 create() 是 mTextView.setText()。能不能新增一个 createHint的方法,给textView设置setHint()

zhaoxiuyu avatar Apr 13 '22 02:04 zhaoxiuyu

这个是添加了点击事件后,系统会自动在文字上加下划线和改变文字颜色,可以重写下 ClickableSpan 的 updateDrawState 方法修改画笔的色值来解决:

SpanUtils.with(binding.tvPrivacyPolicy)
            .setClickSpan(object : ClickableSpan() {

                override fun updateDrawState(paint: TextPaint) {
                    paint.color = Color.parseColor("#b6b6b6")
                    //paint.isUnderlineText = false //去除下划线
                }

                override fun onClick(p0: View) {
                  //....
                }
            })

aleyn97 avatar May 05 '22 05:05 aleyn97

@Blankj SpanUtils 的 create() 是 mTextView.setText()。能不能新增一个 createHint的方法,给textView设置setHint()

你可以使用下面代码生成一个SpannableStringBuilder对象

new SpanUtils()
    ...
    .create();

shouzhong avatar Jul 27 '22 09:07 shouzhong

@Blankj SpanUtils 的 create() 是 mTextView.setText()。能不能新增一个 createHint的方法,给textView设置setHint()

你可以使用下面代码生成一个SpannableStringBuilder对象

new SpanUtils()
    ...
    .create();

??

zhaoxiuyu avatar Jul 28 '22 07:07 zhaoxiuyu