Android Popup Window dismisses when clicked outside

Joss Stuart picture Joss Stuart · Dec 2, 2011 · Viewed 15.8k times · Source

I was hoping to get an answer to my problem I have at the moment.

I have a class which extends popup window. It works fine except I don't want the window to dismiss when I click outside of the window.

At the moment I have setOutsideTouchable(false); but this just stops events outside the window, it still dismisses the popup.

A dialog has setCanceledOnTouchOutside(false), is there something similar I can use?

Thanks

Answer

Joss Stuart picture Joss Stuart · Dec 6, 2011

Ok so fixed in the end.

First made the main layout which the popup sits on a relative layout. Then placed a full screen blank layout on top which I made invisible and transparent.

Then show when the popup is shown, set the full screen panel visible with setVisibility(View.VISIBLE); and hide when popup is hidden with setVisibility(View.GONE);

Also need to return true from an on touch listener for the layout with (To stop touch events passing back to the main layout):

blocker.setOnTouchListener(new OnTouchListener() { 
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});

And give the popup window the properties:

setTouchable(true);
setOutsideTouchable(false);

Cheers