我希望得到我目前遇到的问题的答案。
我有一个扩展弹出窗口的类。它工作正常,除了我不希望在窗口外单击时关闭窗口。
目前我有 setOutsideTouchable(false);
但这只是停止窗口外的事件,它仍然关闭弹出窗口。
对话框有 setCanceledOnTouchOutside(false)
,有没有类似的东西我可以用?
谢谢
最佳答案
好的,最后修好了。
首先使弹出窗口位于相对布局上的主布局。然后在顶部放置一个全屏空白布局,我将其设置为不可见和透明。
然后在显示弹出窗口时显示,使用 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);
干杯
关于在外部单击时,Android 弹出窗口消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8355905/