[英]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方法吗? 没有帖子我无法显示键盘!
我试过了什么:
注意:我正在使用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.