PopupWindow的显示方法有三个:
showAsDropDown(anchor);
showAsDropDown(anchor, xoff, yoff);
showAtLocation(parent, gravity, x, y)。
前两个showAsDropDown方法是让PopupWindow相对于某个控件显示,而showAtLocation是相对于整个窗口的。第一个参数是View类型的parent,虽然这里参数名是parent,其实,不是把PopupWindow放到这个parent里,并不要求这个parent是一个ViewGroup,这个参数名让人误解。官方文档“a parent view to get the android.view.View.getWindowToken() token from
”,这个parent的作用应该是调用 其 getWindowToken()方法获取窗口的Token,所以,只要是该窗口(父类窗口)上的控件(例如:按钮控件)就可以了。
第二个参数是Gravity,(Gravity.CENTER)可以使用|附加多个属性,如Gravity.LEFT|Gravity.BOTTOM。
第三四个参数是x,y偏移。