单击外部时,Android弹出窗口会自动关闭

时间:2011-12-02 11:49:16

标签: android popupwindow

我希望得到我现在遇到的问题的答案。

我有一个扩展弹出窗口的类。它工作正常,但我不想在窗口外面点击时关闭窗口。

目前我有setOutsideTouchable(false);,但这只是停止窗外的事件,它仍然会取消弹出窗口。

一个对话框有setCanceledOnTouchOutside(false),我可以使用类似的东西吗?

由于

2 个答案:

答案 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>