在使用弹出框希望点击弹出框外的任意处让弹出框消失,
先把设置弹出框的setOutsideTouchable为true,然后重写onTouch。
实现如下:
win = new PopupWindow(contentView, LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
win.setOutsideTouchable(true);
win.setFocusable(true);
// 点击弹出窗口区域之外的任意区域,则该窗口关闭
win.setTouchInterceptor(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
win.dismiss();
return true;
}
return false;
}
});