Необходимо указать setBackgroundDrawable()
на PopupWindow
и установить фон на номер null
. Это звучит странно, но если background
не настроен на что-то на вашем PopupWindow
, тогда он не сможет обнаружить события от Activity
, такие как касание снаружи окна или нажатия кнопок на задней панели.
У меня была такая же проблема всего несколько дней назад. Я попытаюсь найти ответ SO, где кто-то объясняет, почему это так, но это может занять меня немного. В то же время, попробуйте, он должен работать.
Found it
У меня не было возможности проверить это, но вы можете попробовать добавить keyEventListener
и делать что-то вроде этого
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
// put your code here
}
и добавить setOutsideTouchable(true)
к вашему PopupWindow
объекта и вызова update()
на него , Если это не сработает, вам может потребоваться просто оставить кнопку «Назад» отключенной, когда всплывающее окно показывается, и добавьте свой собственный Button
в окно. Я не нашел ничего другого, что позволит вам отображать события с нажатой кнопки «Назад».
[посмотреть здесь] (http://stackoverflow.com/a/8606966/2345913) также прочитать его комментарии – CRUSADER
Настройки фон рисует в нуль, не всегда будет закрыть всплывающее окно. У меня есть случай, когда я не хочу закрывать всплывающее окно, а делать какую-то задачу внутри всплывающего окна. Так что есть ли способ захватить событие пресса, когда появится всплывающее окно. –