今天主要是对PopupWindow的总结,如有不对之处,还请提出。
PopupWindow 说白点就是个弹出框, 和Dialog相似,它的好处是可以根据需要设置自己要弹出的位置;布局更加灵活。
一:PopupWindow的使用步骤
1:先创建一个PopupWindow实例
PopupWindow(View contentView, int width, int height)(这只是其中一个构造方法)
参数contentView是popupWindow中要放的布局,参数width和height是popupWindow的宽和高
注意点:官方的说明,当不传递width,height参数时,构造出来的popupWindow的dimension只有0*0,看不见弹出框,不要忘记!
例如:new PopupWindow(getLayoutInflater().inflate(R.layout.pop, null),
LayoutParams. WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
2: 设置其弹出的位置
具体就两种方式:showAsDropDown 和 showAtLocation
1: showAsDropDown(View anchor, int xoff, int yoff)
以anchor的左下角为参照点,定义偏移 即相当于以anchor的左下角定点为二维坐标系的原点,向右为正x,向下为正y
2:showAtLocation(View parent, int gravity, int x, int y)
以parent为主容器,gravity为对齐参照点,定义偏移(参照点上面时是向右是为正X,向下为正Y;在下面时,向右为正X,向上为正Y。
***其中的方法update是用来重新设置PopupWindow的高和宽的,以及它的位置
二:使用时的注意点
1: popupWindow.setBackgroundDrawable(new BitmapDrawable()); 这句话不设PopupWindow之外的区域后, PopupWindow不会消失