1.PopupWindow与AlertDialog的区别
PopupWindow和AlertDialog很相似,都是一个悬浮的窗口遮挡在当前页面,PopupWindow是可以指定显示位置的,随便哪个位置都可以,更加灵活。
2.构造函数
public PopupWindow(View contentView) {
this(contentView, 0, 0);
}
public PopupWindow(View contentView, int width, int height) {
this(contentView, width, height, false);
}
public PopupWindow(View contentView, int width, int height, boolean focusable) {
......
}
首要注意:看这几个构造函数,但要生成一个PopupWindow最基本的三个条件是一定要设置的:View contentView,int width, int height ;少任意一个就不可能弹出来PopupWindow!!!!
3.创建方法
View inflate = LayoutInflater.from(this).inflate(R.layout.pop, null, false);
final PopupWindow popupWindow = new PopupWindow(inflate, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
popupWindow.showAsDropDown(mBtn2,0,0);
4.显示函数
//相对于某个控件的位置(正左下方),无偏移
showAsDropDown(View anchor);
//相对某个控件的位置,有偏移;xoff表示x轴的偏移,正值表示向左,负值表示向右;yoff表示相对y轴的偏移,正值向下,负值向上;
showAsDropDown(View anchor);
//相对于父控件的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以设置偏移或无偏移
showAsDropDown(View anchor);
//点击消失
popupWindow.dismiss();
网友评论