PopupWindow获取宽和高

这几天都在研究PopupWindow,暂时遇到一个坑,就是获取宽和高。

先说正确做法

1.这是我的一个继承了PopupWindow的自定义类OnePopupWindow中的 一个构造方法。


public OnePopupWindow(Context context,View popupWindowView) {
    super(context);
    mContext=context;
    popupWindowView.measure(View.MeasureSpec.UNSPECIFIED,View.MeasureSpec.UNSPECIFIED);
    setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
    setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
    setBackgroundDrawable(new ColorDrawable(0x33000000));
    setFocusable(true);
    setTouchable(true);
    setOutsideTouchable(true);
    setAnimationStyle(R.style.up_dowm_anim);
    setContentView(popupWindowView);

重点是下面这句,作用是先让布局绘制出来,确认布局的宽和高。如果不写这句的话在第一次调用popup类的时候会获取错误的宽高。

popupWindowView.measure(View.MeasureSpec.UNSPECIFIED,View.MeasureSpec.UNSPECIFIED);




2.然后在需要获取popupwindow的宽高地方使用下面代码即可(如果不先用)

popupWindow.getContentView().getMeasuredWidth());

popupWindow.getContentView().getMeasuredHeight();












猜你喜欢

转载自blog.csdn.net/o0_Jimmy_0o/article/details/53381160