问题研究

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

2020-04-24  本文已影响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:软键盘弹出时

            }

        }

    }

});

                                                                                                              亿分感谢--坐着

上一篇 下一篇

猜你喜欢

热点阅读