正如标题所说。我试过平常,
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(root.getWindowToken(), 0);
在OnResume()
中,但它不起作用,大概是因为键盘是从Gmail窗口打开的,而不是我的应用程序窗口。
如果这很重要,单步执行代码会显示imm.mActive
== false。我尝试将此代码放在OnPostResume()
中,但仍无效果。
我尝试使用InputMethodManager.HIDE_NOT_ALWAYS
代替0
,但也没有效果。
内置图库应用没有此问题,因此我认为可以采用解决方案。
答案 0 :(得分:0)
我认为您需要获取应用程序上下文才能隐藏键盘。像这样:
View v = (Your Base Layout) findViewById(R.id....);
InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
如果这不起作用,您也可以尝试:
this.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
希望这有助于:)
答案 1 :(得分:0)
我的解决方案是在导航到Gmail活动之前,确保我的EditText不再具有焦点:
contactSearchView.clearFocus()