我有一个Android应用程序,通过电子邮件分享杂货清单。我通过电子邮件客户端发送列表(可能是Exchange客户端或Gmail客户端)后出现问题,键盘无法关闭。
我试过了:
InputMethodManager mgr = (InputMethodManager) getSystemService(
Context.INPUT_METHOD_SERVICE);
mgr.hideSoftInputFromWindow(editTxt.getWindowToken(), 0);
以及许多其他方式。如果我检查键盘是否打开,它将返回false
,因为它不是调用键盘的应用程序,而是电子邮件客户端。
我找到了一个解决方法,包括:
android:windowSoftInputMode="stateAlwaysHidden"
然后应用程序将强制关闭键盘,但每次我再次打开键盘时都会继续滞后。
使用三星手机时,只有在我使用Gmail客户端时才会出现问题。
答案 0 :(得分:2)
找到解决方案。几毫秒后,焦点从应用程序外部(Email-client)更改为editText视图。然后我可以关闭键盘。 所以我的解决方案看起来像这样:
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
closeKeyboard();
}
}, 20);
答案 1 :(得分:0)
在清单的活动代码中使用android:windowSoftInputMode="stateHidden"
答案 2 :(得分:0)
您是否将此代码放在 onResume()方法中?