Нажмите за пределами диалогового окна Android, чтобы закрыть его? - PullRequest
37 голосов
/ 27 августа 2011

Мне было интересно, можно ли как-то коснуться вне всплывающего диалога (или Действия с темой диалога), и отклонить его, просто нажав за его пределы?

Я сделал короткую картинку, чтобы проиллюстрировать это:

enter image description here

Обычно вы должны нажимать клавишу возврата, чтобы закрыть диалоговые окна, но в Honeycomb было бы здорово иметь возможность просто нажимать вне диалогового окна, потому чтовсе имущество экрана.

Ответы [ 12 ]

0 голосов
/ 19 мая 2013
LayoutParams lp=dialogp.getWindow().getAttributes(); 
lp.flags=LayoutParams.FLAG_LAYOUT_NO_LIMITS;

Я добавил это, и оно работает безупречно на 3.0 up, но должно работать на всех.

0 голосов
/ 10 марта 2013

Любые представления в диалоговом окне можно настроить на использование события касания, чтобы нижеприведенные не вызывались.

onCreate(){
    getWindow().getDecorView().getRootView().setOnTouchListener(new OnTouchListener(){
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            dialog.dismiss();
            return false;
        }
    });
...