繁体   English   中英

调用onResume后,Android软键盘显示怪异

[英]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);
    }
}

打开键盘

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

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

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

软键盘很奇怪

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

我试过了什么:

  • 我尝试使用没有显示键盘的帖子。
  • 我试着调用imm.showSoftInput(txtPassword,0); 结果相同。
  • 我尝试了mAddNewEditText.postDelayed方法,结果与100相同。
  • 我试着将Men:windowSoftInputMode =“stateVisible”放在Menifest上,结果相同。

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

将此行放入您的清单内部活动中

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

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

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

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

这导致了问题,不知道为什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM