android - 什么都不调整时如何获得键盘高度?

标签 android keyboard height popupwindow adjustpan

我正在尝试使用以下代码获取 android 键盘高度。

popupWindow 解决方案在某些设备上不起作用,是否有其他解决方案?

parentLayout.getViewTreeObserver().addOnGlobalLayoutListener(
            new ViewTreeObserver.OnGlobalLayoutListener() {

                @Override
                public void onGlobalLayout() {

                    Rect r = new Rect();
                    parentLayout.getWindowVisibleDisplayFrame(r);

                    int screenHeight = parentLayout.getRootView().getHeight();
                    int heightDifference = screenHeight - (r.bottom);

                    previousHeightDiffrence = heightDifference;

                       if (heightDifference > 100) {
                        isKeyBoardVisible = true;
                        changeKeyboardHeight(heightDifference);

                    } else {

                       if(emojiKeyboard.getVisibility()==View.INVISIBLE){
                          emojiKeyboard.setVisibility(View.GONE);
                        }

                       isKeyBoardVisible = false;
                    }

                }
            });

最佳答案

我会选择 insets 解决方案 - 如果存在,rootWindowInsets.systemWindowInsetBottom 将包括键盘。看看documentation

关于android - 什么都不调整时如何获得键盘高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50343956/

相关文章:

HTML - CSS/如何使子 div 高度响应父级

javascript - 视口(viewport)分辨率自行改变

java - 媒体投影需要 Android Pie 和 Q 中 ServiceInfo.FOREGROUND_SERVICE TYPE_MEDIA_PROJECTION 类型的前台服务

android - 如何在 Android 上用 Qt 或 C++ 重新启动程序?

java - Android - 在应用程序中显示不同的视频

java - 键盘上方需要一个上一个和下一个按钮

java - 如何在 Dagger 1.x 中使用 Singleton?

java - 如何为后退键设置一个新的监听器?

c - 如何使用 select() 从 C 中的键盘读取输入

javascript - 定位div with display : inline-block. 如何依次自适应高度?