调用 onResume 后 Android 软键盘显示异常

标签 android keyboard android-softkeyboard onresume soft-keyboard

我有一个 EditText,我通过以下代码手动控制显示键盘:

private void showKeyboard(boolean show) {
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    if (show) {
        mAddNewEditText.requestFocus();
        imm.showSoftInput(mAddNewEditText, 0);
    } else {
        mAddNewEditText.clearFocus();
        imm.hideSoftInputFromWindow(mAddNewEditText.getWindowToken(), 0);
    }
}

Opened the keyboad

我将调用隐式 Intent 来获取新图像,当它返回 Activity 时,它不会显示软键盘。所以我尝试显示键盘 onResume 函数,如下所示:

@Override
protected void onResume() {
    super.onResume();
    if (mAddNewEditText.isFocused()) {
        mAddNewEditText.post(
                () -> showKeyboard(true)
        );
    }
}

但它显示的键盘是这样的,这与通常显示的键盘不同:

soft keyboard shows weirdly

我想知道这里出了什么问题。是因为我使用的是post方法吗?没有帖子我无法显示键盘!

我尝试过什么:

  • 我尝试使用不带帖子的方式,但不显示键盘。
  • 我尝试调用 imm.showSoftInput(txtPassword, 0);结果是一样的。
  • 我尝试了 mAddNewEditText.postDelayed 方法,100 个结果相同。
  • 我尝试将 android:windowSoftInputMode="stateVisible"放在 Menifest 上,结果相同。

注意:我使用的是 Android 模拟器。

最佳答案

将此行放入 Activity 内的 list 中

<aplication>
   <activity
        android:windowSoftInputMode="stateHidden|adjustResize"/>
 </aplication>

关于调用 onResume 后 Android 软键盘显示异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45456727/

相关文章:

java - 如何模拟功能键(启用FN键)按下

Android:如何更改KeyboardView的文本大小?

android - 在 Eclipse 中加载 Android 模拟器时出现问题。它只说 ANDROID_。有什么建议么?

android - org.json.JSONException : No value for url 的原因是什么

android - QSetting 不适合我

java - 以编程方式限制 EditText 以显示数字键盘

android - 表情符号软键盘就像 android 中的 Whatsapp

java - 放置自动完成 fragment - 二进制 XML 文件行 #19 : Error inflating class fragment

iPhone UITextField : how to insert new line by the return key?

c++ - QML:多次按下/释放后某些键未处理