我有一个标签视图,每个标签有一个Activity,当我从第一个带有TextView的标签切换到第二个标签时,它只显示一个可点击的列表,软键盘仍然存在。我希望它消失,所以我尝试了这个:
public static void hideSoftKeyboard (Activity activity, View view) {
InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
但这不起作用,因为没有提供相关视图,因为屏幕上没有带键盘输入的View。关于如何解决这个问题的任何建议?
答案 0 :(得分:16)
在代码的第3行尝试此操作:
imm.hideSoftInputFromWindow(view.getApplicationWindowToken(), 0);
答案 1 :(得分:16)
尝试Joe提供的答案:Stop EditText from gaining focus at Activity startup
将其放入活动清单中:
android:windowSoftInputMode="stateHidden"
这是一个常见的问题,很高兴知道框架实际上很好地处理了这个问题。
答案 2 :(得分:4)
您也可以尝试
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0 );
答案 3 :(得分:4)
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
答案 4 :(得分:0)
此方法可以帮助您以任何方式隐藏键盘。这对我来说很好用
public void hideKeyboard(Activity activity, View view) {
if (activity != null ) {
if(view != null)
{
try {
InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
} catch (Exception e) {
e.printStackTrace();
}
}else
{
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
}
}
答案 5 :(得分:0)
在播放过渡动画时尝试隐藏键盘时,我遇到了类似的问题。
这对我有用:
imm.hideSoftInputFromWindow(activity.getWindow().getDecorView().getWindowToken(), 0)