美文网首页
Androd 键盘不弹出

Androd 键盘不弹出

作者: 人世看客 | 来源:发表于2022-07-29 10:45 被阅读0次
    1. 最近在做项目中要求手动弹出软件,刚开始感觉很容易就能实现,看了网上写的直接调用一下代码
    /**
         * 显示键盘
         */
        fun showKeyboard(activity:Activity,edt: EditText){
            edt.requestFocus()
            val imm: InputMethodManager =
                activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
            imm.showSoftInput(edt, 0)
    
        }
    

    好吧,我直接调用了上面方法,但是就是不行。造成这个原因是调用的时机不对,如果刚进入界面就调用此方法,此时输入框还没有绘制完成,无法获取输入框焦点因此无法弹出。

    1. 找了网上说的方法,基本就是延迟加载
      第一种:
    edtText.post {
                SystemUtil.showKeyboard(context as Activity,edtText)
            }
    

    第二种:需要注意的是showKeyboard中的 edt.requestFocus()需要放在外面执行,不然会异常 "Only the original thread that created a view hierarchy can touch its views"

    Timer().schedule(object :TimerTask() {
                override fun run() {
                    SystemUtil.showKeyboard(context as Activity,edtText)
                }
            }, 1000)
    

    试过后第一种方法可行,第二种方法失败了,可能使用方式不对,小伙伴们可以自己去探索

    相关文章

      网友评论

          本文标题:Androd 键盘不弹出

          本文链接:https://www.haomeiwen.com/subject/keafwrtx.html