2019-11-05记录,TextView设置下划线并点击

用SpannableStringBuilder 的方式设置下划线并可以点击下划线内容:

        //设置点击背景
        //设置高亮,不设置这个,点击下划线内容会有一个背景颜色
        iv_user_agreement.highlightColor =
            resources.getColor(android.R.color.transparent)
        var spannable = SpannableStringBuilder(getString(R.string.user_agreement))
        var clickableSpan = object : ClickableSpan() {
            override fun onClick(widget: View) {
                //点击响应事件
            }

            //配置下划线
            override fun updateDrawState(ds: TextPaint) {
                //不要调用super 方法,否则会改变下划线字体颜色
                //TextPaint 可以设置对应的内容
                ds.isUnderlineText = true
            }
        }
        //要触发点击事件必须设置这个
        iv_user_agreement.movementMethod = LinkMovementMethod.getInstance()
        spannable.setSpan(clickableSpan, 37, 54, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
        //要第一次setText为spannable,否者无效
        iv_user_agreement.text = spannable

以上,第一次setText一定是要为spannable,不可以在xml 中先设置text;必须设置setMovementMethod方法

你可能感兴趣的:(2019-11-05记录,TextView设置下划线并点击)