Android 中键盘的显示和隐藏

2023-04-05  本文已影响0人  因为我的心

1、getCurrentFocus() 方法:

图片.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。

上一篇 下一篇

猜你喜欢

热点阅读