如何在Android中判断软键盘是不是弹出或隐藏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Android中判断软键盘是不是弹出或隐藏相关的知识,希望对你有一定的参考价值。

android判断软键盘是否弹出和隐藏,主要是通过InputMethodManager 这个类来监听,如下代码:


InputMethodManager inputMethodManager = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
private boolean hideKeyboard() if(inputMethodManager.isActive(searchEditText))
          //因为是在fragment下,所以用了getView()获取view,也可以用findViewById()来获取父控件 getView().requestFocus();//强制获取焦点,不然getActivity().getCurrentFocus().getWindowToken()会报错 inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); inputMethodManager.restartInput(searchEditText); return true;  return false; 
参考技术A 不知道你是说的哪一种?
(1):虚拟键盘弹出后一般会占据当前activity的大部分,所以肉眼可以看到;
(2):代码中判断:
//判断隐藏软键盘是否弹出
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParamsSOFT_INPUT_STATE_UNSPECIFIED)

//隐藏软键盘
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
本回答被提问者和网友采纳
参考技术B (1):虚拟键盘弹出后一般会占据当前activity的大部分,所以肉眼可以看到;
(2):代码中判断:
//判断隐藏软键盘是否弹出
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParamsSOFT_INPUT_STATE_UNSPECIFIED)

//隐藏软键盘
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
参考技术C (1):虚拟键盘弹出后一般会占据当前activity的大部分,所以肉眼可以看到;
(2):代码中判断:
//判断隐藏软键盘是否弹出
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParamsSOFT_INPUT_STATE_UNSPECIFIED)

//隐藏软键盘
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

以上是关于如何在Android中判断软键盘是不是弹出或隐藏的主要内容,如果未能解决你的问题,请参考以下文章

关于项目中很多键盘无故弹出或无隐藏的总结

android中如何点击一个按钮时隐藏软键盘,(不是点击空白处隐藏软键盘)

android软键盘弹出时如何处理页面布局

qt for android 怎样弹出键盘

Android - 隐藏EditText弹出的软键盘输入(SoftInput)

Android之弹出/隐藏系统软键盘