该文档指出PopupWindow将在其窗口之外被告知触摸事件
setOutsideTouchable(boolean touchable)设置为true.
popupwindow如何通知?我没有看到任何像setOnOutsideTouchListener等的监听器来接收该信息.
setOutsideTouchable(boolean touchable)设置为true.
popupwindow如何通知?我没有看到任何像setOnOutsideTouchListener等的监听器来接收该信息.
例
PopupWindow popup = new PopupWindow(); popup.setOutsideTouchable(true); //now what..how to receive those touch outside events?
谢谢.
解决方法
尝试使用setTouchInterceptor,如下面的代码片段
popup.setTouchInterceptor(new OnTouchListener() { public boolean onTouch(View v,MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_OUTSIDE) { popup.dismiss(); return true; } return false; } });
也不要忘记设置以下标志:
popup.setOutsideTouchable(true);