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

Android soft keyboard displays weirdly after calling onResume

我有一个 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);
    }
}

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

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

但它显示的键盘与通常显示的键盘不同:

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

我尝试了什么:

注意:我正在使用 Android 模拟器。

将此行放在您的清单中 activity

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

也许你可以试试postDelayed(),延迟500毫秒或更多。确保在 UI 完成后显示键盘。

好的,我找到了答案: 在我的 styles.xml 我有这个代码:

<item name="android:windowFullscreen">true</item>

是哪个问题导致的,不知道为什么。