今天主要是对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不会消失