美文网首页
获取键盘是否出现以及收起键盘

获取键盘是否出现以及收起键盘

作者: 风___________ | 来源:发表于2018-05-23 18:36 被阅读18次

    获取键盘是否出现

    /**
         * 获取键盘是否出现
         * */
        protected boolean isKeyBoardShow(){
            //获取当前屏幕内容的高度
            int screenHeight = getWindow().getDecorView().getHeight();
            //获取View可见区域的bottom
            Rect rect = new Rect();
            getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
            return (screenHeight - rect.bottom - getSoftButtonsBarHeight()) != 0;
        }
        /**
         * 底部虚拟按键栏的高度
         * @return
         */
        @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
        private int getSoftButtonsBarHeight() {
            DisplayMetrics metrics = new DisplayMetrics();
            //这个方法获取可能不是真实屏幕的高度
            getWindowManager().getDefaultDisplay().getMetrics(metrics);
            int usableHeight = metrics.heightPixels;
            //获取当前屏幕的真实高度
            getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
            int realHeight = metrics.heightPixels;
            if (realHeight > usableHeight) {
                return realHeight - usableHeight;
            } else {
                return 0;
            }
        }
    

    收起键盘

    /**
         * 收起键盘
         * */
        protected void closeKeyboard(){
            InputMethodManager inputMethodManager = (InputMethodManager)
                    getSystemService(Context.INPUT_METHOD_SERVICE);
            inputMethodManager.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(),0);
        }
    

    应用场景

    /** 页面左上角的返回按钮触发事件 */
    protected void leftButtonAction(){
            if (isKeyBoardShow()){
                closeKeyboard();
                return;
            }
            finish();
        }
    

    亲测,亲写,往上千篇一律~~也是无奈。。。。我是伸手狗,请多指教~~

    相关文章

      网友评论

          本文标题:获取键盘是否出现以及收起键盘

          本文链接:https://www.haomeiwen.com/subject/ozhdjftx.html