Android 中键盘的显示和隐藏
2023-04-05 本文已影响0人
因为我的心
1、getCurrentFocus() 方法:
![](https://img.haomeiwen.com/i11268516/dcebfa52f4e23484.png)
getCurrentFocus()
方法是用于获取当前窗口焦点的视图。在 Android 中,窗口焦点指的是当前屏幕中正在交互的视图,可以是 EditText、Button 或其他 View 子类。通过 getCurrentFocus() 方法,可以获取当前视图,并对其进行操作或获取其属性。
2、代码:
/**
* 1、创建对象
*/
private val imm: InputMethodManager? by lazy { getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager? }
/**
* 2、显示键盘
*/
private fun showSoftInput() {
this?.currentFocus?.let {
imm?.showSoftInput(it, 0)
}
}
/**
* 3、隐藏键盘
*/
private fun hideSoftInput() {
this?.currentFocus?.let {
imm?.hideSoftInputFromWindow(it.windowToken, 0)
}
}
3、显示键盘的其它方式
在 Android 中,可以通过以下几种方式来显示软键盘:
1、通过 EditText.requestFocus() 方法让 EditText 控件获取焦点,从而弹出软键盘。
EditText editText = findViewById(R.id.edit_text);
editText.requestFocus();
2、调用 InputMethodManager.showSoftInput() 方法显示软键盘,其中需要传入当前焦点视图和显示标识:
EditText editText = findViewById(R.id.edit_text);
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
3、如果当前窗口中没有焦点视图,可以通过调用 InputMethodManager.toggleSoftInput() 方法来直接显示软键盘:
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
4、隐藏键盘
要隐藏 Android 键盘,可以在 Activity 中调用如下代码:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
其中 view 是当前焦点所在的 View。如果你想隐藏键盘并清除焦点,则可以将参数 0 改为 InputMethodManager.HIDE_IMPLICIT_ONLY。