Android的弹出窗口一般都两种方式。AlertDialog和PopupWindow。这里重点介绍PopupWindow的显示位置。
Android为PopupWindow的显示位置提供了两种方法:
1 popupWindow相对父布局的位置
重载的方法为
public void showAtLocation(View parent, int gravity, int x, int y) 第一个参数就是父布局类,一般都是方法体中的参数view。 第二个参数gravity指的是popupWindow在父布局中出现的大致位置。常见的有 Gravity.NO_GRAVITY,Gravity.LEFT,Gravity.RIGHT,Gravity.TOP, Gravity.BOTTOM。具体意思一看就明了,就不解释类。 第三个参数int x指的是以第二个参数gravity指点的位置为原点,popupWindow相对于原点X轴上的位置。x为正popupWindow向右移动,x为负popupWindow向 左移动。 第四个参数int y同X差不多,指的是y轴上的位置。y为正popupWindow向上,y为负popupWindow向下。 2 popupWindow相对于某个控件的位置public void showAsDropDown(View anchor) public void showAsDropDown(View anchor, int xoff, int yoff) public void showAsDropDown(View anchor, int xoff, int yoff, int gravity) 前两个方法不指定gravity 则popupWindow出现在anchor的正下方。 第一个参数anchor指的是你的popupWindow相对于的这个控件。 第二个参数xoff指的是popupWindow相对于原点X轴上的位置。x为正popupWindow向右移动,x为负popupWindow向左移动。 第三个Y轴上注意正负和popupWindow上下移动的关系。 第三个参数yoff指的是y轴上的位置。y为正popupWindow向下,y为负popupWindow向上。 第四个参数跟上个一样,这里就不解释了。 用popupWindow做了一个弱智版的侧滑。有兴趣的可以看看