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