通常の Dialog を継承しているもの。
Activityにtheme (@android:style/Theme.Dialog など) を設定してDialog風にしているもの。
指定の方法がそれぞれ違う。
1. 通常の Dialog を継承しているもの。
final AlertDialog dialog = alertinformation.create(); dialog.setCanceledOnTouchOutside(true);
Dialog に対して、setCanceledOnTouchOutside を設定してやるといい。
2. Activityにtheme (@android:style/Theme.Dialog など) を設定してDialog風にしているもの。
// ウィンドウ外を触った場合、閉じる @Override public boolean dispatchTouchEvent(MotionEvent ev) { Rect dialogBounds = new Rect(); getWindow().getDecorView().getHitRect(dialogBounds); if (!dialogBounds.contains((int) ev.getX(), (int) ev.getY())) { this.finish(); } return super.dispatchTouchEvent(ev); }
イベントで画面外をタッチしている場合に画面を終了する。
0 件のコメント:
コメントを投稿