相信popupwindow大家也是经常使用的,这里就不用例子说明它的作用了,这里说一下各个方法的用法也顺便说下很多人遇上的所谓的offsetx不起作用的问题
View view = View.inflate(getActivity(), R.layout.add, null);
popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setFocusable(true);//获得焦点,才能让View里的点击事件生效
if(popupWindow.isShowing()){popupWindow.dismiss();
}else {
popupWindow.showAsDropDown(imageView,-400,200);
//popupWindow.showAtLocation(imageView, Gravity.BOTTOM, 100, 100);
}
new popupwindow里的第一个参数是window里的view,也是就要显示的是哪个view,第二和第三个是设定pupopwindow的宽和高
setBackgroundDrawable里设了一个空的bitmapdrawable,因为如果要在点击popupwindow以外的地方要其消失 ,就要为其设一个背景,当前这里也可设你自己 想要的背景
popupWindow.showAsDropDown(imageView,-400,200);
popupWindow.showAtLocation(imageView, Gravity.BOTTOM, 100, 100);显示在指定的位置,第二个参数为显示的位置,第三四个参数还是偏移的像素,第三四个像素的偏移和相对显示的是一样的。而用这种方法就固定只会显示在屏幕内,无论偏移量设为多大,只偏移到屏幕边缘为止