如何在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中判断软键盘是不是弹出或隐藏的主要内容,如果未能解决你的问题,请参考以下文章