RelativeLayout
動的に使用するコードに追加および削除されるフラグメントがいくつかあります。フラグメントの 1 つは でListFragment
あり、閉じるボタンと保存ボタンを持つ他のフラグメントとは対照的に、これにはリストのみが含まれます。
私の目標は、アクティビティ内の任意の場所でフラグメントの外側をクリックして、このフラグメントを閉じる/削除することです。
次のコードを見つけました。
@Override
public boolean onTouchEvent(MotionEvent event) {
// I only care if the event is an UP action
if (event.getAction() == MotionEvent.ACTION_UP) {
// create a rect for storing the window rect
Rect r = new Rect(0, 0, 0, 0);
// retrieve the windows rect
this.getWindow().getDecorView().getHitRect(r);
// check if the event position is inside the window rect
boolean intersects = r.contains((int) event.getX(), (int) event.getY());
// if the event is not inside then we can close the activity
if (!intersects) {
// close the activity
this.finish();
// notify that we consumed this event
return true;
}
}
// let the system handle the event
return super.onTouchEvent(event);
}
その外側をクリックすると、フルスクリーンではないアクティビティが閉じますが、フラグメントの四角形を見つける方法を理解していないようです。
誰かが私を助けて正しい方向に向けることができますか? どんな助けでも大歓迎です。
ありがとう。