筆者在使用帶輸入框的AlertDialog時(shí)需要將輸入框立即顯示出來(lái),發(fā)現(xiàn)在安卓11 (API 30)及以上版本使用傳統(tǒng)的顯示輸入法代碼失效,查找后發(fā)現(xiàn)新的方式。
問(wèn)題記錄
安卓11 (API 30)及以上版本無(wú)法調(diào)用以下代碼無(wú)法顯示輸入框并在控制臺(tái)找到以下提示信息。
binding.editText.requestFocus()
val imm = requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(binding.editText, InputMethodManager.SHOW_IMPLICIT)
信息提示
Ignoring showSoftInput() as view=" + view + " is not served
解決方式
使用新的方式代替老方式進(jìn)行顯示輸入框。
輸入框顯示調(diào)用
binding.editText.windowInsetsController.show(WindowInsetsCompat.Type.ime())
或者兼容模式文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-635851.html
WindowInsetsControllerCompat(requireDialog().window!!, binding.editText).show(
WindowInsetsCompat.Type.ime()
)
輸入框隱藏調(diào)用
binding.editText.windowInsetsController.hide(WindowInsetsCompat.Type.ime())
或兼容模式文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-635851.html
WindowInsetsControllerCompat(requireDialog().window!!, binding.editText).hide(
WindowInsetsCompat.Type.ime()
)
到了這里,關(guān)于Android 11及以上 showSoftInput 沒(méi)有效果解決方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!