PopupWindow展示在下方,并且与水平对齐

  1. 创建PopupWindow
    PopupWindow popupWindow = new PopupWindow(popupWindow, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
  2. 测量popupWindow的宽度,因为popupWindow使用的是WRAP_CONTNET的方式创建的。所以测量之前需要执行以下方法
    popupWindow.getContentView().measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
  3. 设置popupWindow的相关属性方法
            popupWindow.setBackgroundDrawable(new ColorDrawable());
            popupWindow.setOutsideTouchable(true);
            popupWindow.setFocusable(true);
  1. 计算偏移量,我们要偏移到控件的正中间的位置,所以需要计算x轴的偏移量
    int xPos = view.getWidth() / 2 - popupWindow.getContentView().getMeasuredWidth() / 2;
  2. 显示在控件的下方
    popupWindow.showAsDropDown(v, xPos, 3);

你可能感兴趣的:(PopupWindow展示在下方,并且与水平对齐)