我希望得到我现在遇到的问题的答案。
我有一个扩展弹出窗口的类。它工作正常,但我不想在窗口外面点击时关闭窗口。
目前我有setOutsideTouchable(false);
,但这只是停止窗外的事件,它仍然会取消弹出窗口。
一个对话框有setCanceledOnTouchOutside(false)
,我可以使用类似的东西吗?
由于
答案 0 :(得分:7)
好的,最后修好了。
首先制作弹出窗口位于相对布局上的主要布局。然后在顶部放置一个全屏空白布局,使我看不见和透明。
然后显示弹出窗口显示时,使用setVisibility(View.VISIBLE);
设置全屏面板,并隐藏弹出窗口隐藏setVisibility(View.GONE);
还需要从布局的触摸侦听器返回true(要停止传递回主布局的触摸事件):
blocker.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
并在弹出窗口中输入属性:
setTouchable(true);
setOutsideTouchable(false);
干杯
答案 1 :(得分:0)
您使用此PopupWindow
是为了什么?这听起来像是以Dialog
- 更多的方式使用它。
话虽如此,你可能不得不考虑使用setTouchInterceptor
然后创建自己的OnTouchListener
,你将用它来检查触摸的执行位置(在弹出窗口上或不是)。 / p>