android - 单击 ClickableSpan 后如何禁用打开键盘

标签 android android-edittext spannablestring

我有下一个代码用于添加 EditText 图像:

fun bind() {
            val ssb = SpannableStringBuilder(".")
            var bitmap = BitmapFactory.decodeResource(context.resources, R.drawable.ic_rand_5)
            bitmap = resize(bitmap)
            val clickableSpan = object : ClickableSpan() {
                override fun onClick(p0: View?) {
                    d { "ON CLICK" }
                }
            }
            ssb.setSpan(ImageSpan(context, bitmap), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
            ssb.setSpan(clickableSpan, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
            etExp.setText(ssb, TextView.BufferType.SPANNABLE)

    }

点击图像打开键盘后,但我不需要这种行为。如何在使用 ClickableSpan 单击 ImageSpan 后禁用自动打开键盘?

最佳答案

当您将文本设置到 EditText 中时,它会获得焦点并且系统会调出键盘作为响应。摆脱键盘的最简单方法是像您一样设置文本,然后清除焦点:

//Set the ET
etExp.setText(ssb, TextView.BufferType.SPANNABLE)

//Clear the focus:
etExp.clearFocus();

希望对您有所帮助。

关于android - 单击 ClickableSpan 后如何禁用打开键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51598660/

相关文章:

Android 自定义可跨越字符串的组合跨度

Android:具有多种颜色和字体的TextView

android - 如何在 Android 的 TextView 中的文本下方添加红色波浪线

java - API 网关 : SDK Settings name given to method does not reflect in SDK Generation

android - 在android中固定长度的字符后使EditText可水平滚动

android - 当我按下下一步时,如何将光标从 edittext 水平移动到另一个?

Android - 在软键盘上捕获 "Done"和 "Enter"按键事件

android - 我怎么知道在 RxAndroid 的 combineLatest 中哪个 observable 发生了变化?

java - org.xml.sax.SAXParseException : Unexpected token while parsing XML

android - 更改实际 Spinner 按钮对象的字体大小