Android:如何在专注于 EditText 时隐藏/显示键盘?

发布于 2025-01-09 18:46:17 字数 914 浏览 0 评论 0原文

我有注册表单,当用户聚焦于 EditText 时,我需要显示键盘。我一直遇到这个问题,我使用了很多不再有效的解决方法。令我惊讶的是,Android 无法处理这种基本的事情,比如单独在 EditText 之间进行聚焦。

这里发生了什么:当我从电子邮件 EditText 移动到密码一时,它将隐藏键盘,并且密码字段聚焦,指示器闪烁,而没有可见的键盘。

代码:

    emailEt.apply {
        onFocusChange {
            if (isFocused) app.showKeyboard(a) else app.hideKeyboard(this)
        }
        onEditorAction {
            passwordEt.requestFocus()
        }
        afterTextChanged {
            emailFieldValidation(true)
            validateData()
        }
    }

    passwordEt.apply {
        onFocusChange {
            if (isFocused) app.showKeyboard(a) else app.hideKeyboard(this)
        }
        onEditorAction {
            this.clearFocus()
        }
        afterTextChanged {
            passwordFieldValidation(true)
            validateData()
        }
    }

    resetData()
    emailEt.requestFocus()

I have registration form and I need to show keyboard when user is focused in EditText. I had always problem with this and I used a lot of workarounds which are no longer working. Im surprised Android cant handle this basic thing like focusing between EditText on its own.

What is happening here: When I move from email EditText to password one, it will hide keyboard and password field is focused with indicator blinking without visible keyboard.

Code:

    emailEt.apply {
        onFocusChange {
            if (isFocused) app.showKeyboard(a) else app.hideKeyboard(this)
        }
        onEditorAction {
            passwordEt.requestFocus()
        }
        afterTextChanged {
            emailFieldValidation(true)
            validateData()
        }
    }

    passwordEt.apply {
        onFocusChange {
            if (isFocused) app.showKeyboard(a) else app.hideKeyboard(this)
        }
        onEditorAction {
            this.clearFocus()
        }
        afterTextChanged {
            passwordFieldValidation(true)
            validateData()
        }
    }

    resetData()
    emailEt.requestFocus()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

莫言歌 2025-01-16 18:46:17

Java

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

Kotlin

window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)

Java

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

Kotlin

window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文