美文网首页
popwindow软键盘上下层次设置,显示位置不正确的问题

popwindow软键盘上下层次设置,显示位置不正确的问题

作者: next_discover | 来源:发表于2019-08-08 17:48 被阅读0次
    //设置弹出窗体需要软键盘,
    popupWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
    //再设置模式,和Activity的一样,覆盖,调整大小。
    popupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
    
    //activity设置属性:
    android:windowSoftInputMode="adjustPan"
    
    
    
    
    

    解决Android7.0后pop显示位置不正确的问题

       /**
         * 相对于父控件的位置(通过设置Gravity.CENTER,下方Gravity.BOTTOM等 ),可以设置具体位置坐标
         * @return
         */
        public CustomPopWindow showAtLocation(View view){
            /*
             * 此方法针对7.0部分机型PopupWindow弹出位置不正确的解决方法
             */
            if (mPopupWindow != null && mPopupWindow.isShowing()) {
                mPopupWindow.dismiss();
            } else {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                    int[] location = new int[2];
                    view.getLocationOnScreen(location);
                    int tempHeight = mPopupWindow.getHeight();
                    if (tempHeight == WindowManager.LayoutParams.MATCH_PARENT || DisplayUtils.getScreenHeight(mContext) <=
                            tempHeight) {
                        mPopupWindow.setHeight(DisplayUtils.getScreenHeight(mContext) - location[1] - view.getHeight());
                    }
                    mPopupWindow.showAtLocation(view, Gravity.NO_GRAVITY, location[0], location[1] + view.getHeight());
                    mPopupWindow.update();
                } else {
                    if (mPopupWindow != null) {
                        mPopupWindow.showAsDropDown(view, 0, 0);
                        mPopupWindow.update();
                    }
                }
            }
            return this;
        }
    

    相关文章

      网友评论

          本文标题:popwindow软键盘上下层次设置,显示位置不正确的问题

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