自定义PopupWindow开发

时间:2022-02-18 08:24:46

标签:popupwindow


近期工作需求,需要做一个弹出窗口,并且里面包含2个设置项,一个进入详细设置,一个快捷开关,界面如下:

//目前常规的动画设置,如下几种

mPopWindow.setAnimationStyle(Animation_Toast);

其中,可以设置的动画值如下:

Animation

Animation_Activity:像Activity一样出现,没有特别的效果

Animation_Dialog:默认不设置时的效果,Dialog逐渐显现,逐渐消失

Animation_InputMethod 从下往上进入,从上往下消失

Animation_Toast 像Toast一样Fad In,Fad out

Animation_Translucent 测试效果是从右边进入,


//更精细的动画设置,,包括进入,退出,setAnimationStyle其实是通过一组特别

//Style,代码里进一步设置具体的进入退出效果

mPopWindow.setEnterTransition(new Slide(Gravity.LEFT));

mPopWindow.setExitTransition(new Slide(Gravity.TOP));


接下来,针对显示PopupWindow的位置,有两种方式:

showAtLocation(View parent, int gravity, int x, int y)

传入父view,以该view为父布局,设置对齐gravity,偏移x offset,y offset

showAsDropDown(View anchor, int xoff, int yoff)

以anchor View为相对view,PopupWindow显示在anchor view下面,xoff,yoff是相对anchor view的偏移