通常の 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 件のコメント:
コメントを投稿