Android PopupWindow 软键盘遇到的问题

2022-06-20  本文已影响0人  银弹星空

软键盘遮挡PopupWindow 解决方法

1.Activity Android AndroidManifest.xml中添加

android:windowSoftInputMode="stateHidden|adjustResize"

2.PopupWindow 中设置

        popupWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
        popupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

popupwindow 关闭软键盘不关闭解决方法

1.先写判断软键盘是否关闭方法

    private boolean isSoftShowing() {
        // 获取当前屏幕内容的高度
        int screenHeight = getWindow().getDecorView().getHeight();
        // 获取View可见区域的bottom
        Rect rect = new Rect();
        // DecorView即为activity的顶级view
        getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
        // 考虑到虚拟导航栏的情况(虚拟导航栏情况下:screenHeight = rect.bottom + 虚拟导航栏高度)
        // 选取screenHeight*2/3进行判断
        return screenHeight*2/3 > rect.bottom;
    }

2.关闭软件盘

                InputMethodManager inputMethodManager = (InputMethodManager) 
      context.getSystemService(Activity.INPUT_METHOD_SERVICE);
                if(isSoftShowing()){
                    inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
                }

上一篇下一篇

猜你喜欢

热点阅读