美文网首页
监听Android软件盘弹出及隐藏

监听Android软件盘弹出及隐藏

作者: IT枫 | 来源:发表于2017-10-18 09:23 被阅读15次

    项目中用到监听软键盘的显示与隐藏,搜索无果,官方并没有提供软键盘的显示与隐藏的监听。
    通过曲线救国,通过监听布局的大小改变来实现。

    整体布局大小改变的监听

    在Activity生命周期函数onResume中添加整体布局的改变的监听

        //屏幕的高度,单位像素
        private int screenHeight;
        //整体布局的改变量
        private int keyHeight;
        @Override
        protected void onResume() {
            super.onResume();
            //获取当前屏幕内容的高度  
            DisplayMetrics dm = getResources().getDisplayMetrics();
            screenHeight = dm.heightPixels;
            //阀值设置为屏幕高度的1/3    
            keyHeight = screenHeight * 2 / 3;
            getWindow().getDecorView().addOnLayoutChangeListener((v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
                Rect rect = new Rect();
                getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
                if (bottom != 0 && oldBottom != 0 && rect.bottom <= keyHeight) {
                    softInputShow();
                } else if (bottom != 0 && oldBottom != 0) {
                    softInputHide();
                }
            });
        }
        public abstract void softInputHide();
    
        public abstract void softInputShow();
    

    相关文章

      网友评论

          本文标题:监听Android软件盘弹出及隐藏

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