1 如何实现点击popup外边来实现,popupWindow自动退出
a 设置外部可点击
popupWindow = new PopupWindow(menuView, LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
popupWindow.setOutsideTouchable(true);
b 复写touch方法 ,让布局中的其他背景空间,都来坚挺touch事件
relativeLayout.setOnTouchListener(this) ;
skiiBgImageView.setOnTouchListener(this) ;
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("touch", v.toString()) ;
if ((popupWindow!=null) && (popupWindow.isShowing())) {
popupWindow.dismiss() ;
}
return false;
}
2 popupwindow 的窗口泄露
一定要将popwindow dismiss 之后,在去做activity.finish()
3 点击任意窗口外部位置,都让popupwindow 消失,包括唤起他弹出的按钮,再次点击,也让他取消显示
需要添加这几条语句:
PopWindow.setFocusable(true);
PopWindow.setOutsideTouchable(true);
PopWindow.showAtLocation(v_right, Gravity.BOTTOM, 0, 0);// 点击任意外部位置都小时,这条语句必须在最后显示