首页 > 怎么判断软键盘是否弹出?

怎么判断软键盘是否弹出?

如题,有什么好的方法可以判断软键盘是否弹出?


iOS的问题?? 检测键盘显示的通知就行了啊。


  final int heigh =  getWindowManager().getDefaultDisplay().getHeight() /3;
        root.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
            @Override
            public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
          //弹起事件                
          if (bottom != 0 && oldBottom != 0 && oldBottom- bottom  >heigh) {
                    if (mListView.getLastVisiblePosition() != mDateArrays.size() - 1) {
                        mListView.smoothScrollToPosition(mDateArrays.size() -1);
                    }
                }
               else if(oldBottom != 0 && bottom != 0 &&(bottom - oldBottom > keyHeight)){
                         Toast.makeText(MainActivity.this, "监听到软件盘关闭...", Toast.LENGTH_SHORT).show(); }
            }
        });

在清单文件中添加:android :windowSoftInputMode= "stateAlwaysHidden|adjustResize"
其中root是你的布局文件的根View。
原因:因为一般我们的根View的位置是不会变化的,假如发生了变化,那么就可能是键盘弹起了,所以我们通过判断他的位置变化去判断键盘是否弹起。还有,我们假如是在键盘的弹起事件中去改变View的一些东西,比如更新啊,重绘之类的,尽量通过Handler去做,不要直接在监听的事件里面直接处理。


自问自答吧。
给个链接http://toughcoder.net/blog/2015/10/09/android-trick-detect-soft-keyboard-show-slash-hide/

【热门文章】
【热门文章】