问题:
1.监听到软键盘状态变化。
2.判断软键盘当前状态。
遇到这个关于软键盘的问题,寻找了许多资料。看过许多例子。有的通过layout 变化来定度,显得太牵强。
下面是我参考其他例子,加以实践,可行的办法。
rootLayout.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
InputMethodManager imm = (InputMethodManager) getSystemService( Context.INPUT_METHOD_SERVICE);
if(imm.hideSoftInputFromWindow(edittext.getWindowToken() , 0)){
imm.showSoftInput(edittext, 0); //关闭成功,但是我只是想知道键盘的状态而不是关闭它,于是再次恢复打开状态
//打开状态
}
else{
//关闭状态
}
}
} );
其中
rootLayout 是界面的根布局
<pre name="code" class="java">imm.hideSoftInputFromWindow(edittext.getWindowToken() , 0) 关闭键盘,如果当前键盘是打开的 那么会返回true 如果键盘是关闭的 那么会返回 false
通过上面的办法 即可获取键盘状态。