Android软键盘-使用OnBackpress方法

Android软键盘-使用OnBackpress方法,android,kotlin,Android,Kotlin,当我按下Android手机上的后退按钮时,它会关闭软键盘,但当调用Backpressed方法时,它不会关闭软键盘 我曾尝试以编程方式关闭软键盘,但无法准确解决问题 val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager if (imm.isAcceptingText){ imm.toggleSoftInput(InputMethodManager.SHOW_FORCED

当我按下Android手机上的后退按钮时,它会关闭软键盘,但当调用Backpressed方法时,它不会关闭软键盘

我曾尝试以编程方式关闭软键盘,但无法准确解决问题

val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager

    if (imm.isAcceptingText){
        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0)
        android.R.id.accessibilityActionHideTooltip

    }*
我想在调用onbackpressed方法时关闭软键盘,那么在Android中back按钮到底是如何工作的呢


如果我调用onbackpressed方法,我需要以编程方式关闭软键盘,我需要避免关闭键盘代码这会关闭键盘

    window!!.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)
或者创建一个函数

fun hideKeyboard(activity: Activity) {
    val imm = activity.getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
    //currently focused view
    var view = activity.currentFocus
    //If null, create a new one
    if (view == null) {
        view = View(activity)
    }
    imm.hideSoftInputFromWindow(view.windowToken, 0)
}
打电话

    hideKeyboard(your_activity_context as YourActivity)

对于您的另一个问题,调用
onBackPress()
不会关闭键盘,因为按下后退按钮时的键盘关闭事件由系统本身处理,并且也会被消耗。如果手动触发
onBackPress()
,它将不会调用隐藏的代码段。。