美文网首页问题研究
Android EditText唤起软键盘后,将列表数据遮盖住的

Android EditText唤起软键盘后,将列表数据遮盖住的

作者: 啥也写不出来的安卓技术人员 | 来源:发表于2020-04-24 19:59 被阅读0次

    首先 这是在做一个咨询的项目,聊天界面点击输入框时,一些列表数据被遮盖了,因为这个问题,足足让我掉了三根头发。

    于是 百度 掘金 简书 博客 都翻烂了都没有真正解决我这个问题的方法

    在对应activity中的setContentView()方法前:

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

    或在mainifest文件中的activity标签下添加windowSoftInputMode属性 值为 adjustPan

    等等等等……

    然而 并没有什么卵用

    于是 在今天的机缘巧合下  我在微信的一篇帖子上 找到了解决思路,然后随着这个思路 我就随便百度了一下  就解决了

    解决方法:

    思路 监听键盘的唤起 与隐藏

    EditText.this..getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

    @Override

        public void onGlobalLayout() {

                    Rect rect =new Rect();

                        SendNewsActivity.this.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);//获取当前界面可视部分

            int screenHeight = SendNewsActivity.this.getWindow().getDecorView().getRootView().getHeight();//获取屏幕高度

            int heiDifference = screenHeight - rect.bottom;//获取键盘高度,键盘没有弹出时,高度为0,键盘弹出时,高度为正数

            if (heiDifference ==0) {

                        //todo:软键盘没有弹出时

                }else {

                        //todo:软键盘弹出时

                }

            }

        }

    });

                                                                                                                  亿分感谢--坐着

    相关文章

      网友评论

        本文标题:Android EditText唤起软键盘后,将列表数据遮盖住的

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