美文网首页问题研究
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