popupwindow非常适合于轻量级的弹出,相比dialog,可以自定义位于哪个位置,哪个控件的任意方向弹出,用法很多。
先说在控件的某个方向上弹出
在控件上方弹出
int[] location = new int[2];
arg0.getLocationOnScreen(location);
popupwindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0], location[1]-popupwindow.getHeight());
在控件下方弹出
popupwindow.showAsDropDown(v, 0, 0);
后面的0,0是相对于控件的偏移量
左
popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0]-popupWindow.getWidth(), location[1]);
右
popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0]+v.getWidth(), location[1]);
项目中popupwindow中的选项是服务器提供的,所以用到了listview来展示数据,使用的时候要注意限制listview 的宽度,可以用layoutparam来控制
参考了http://blog.csdn.net/janronehoo/article/details/8570172
转载请注明本文出处!