Ich habe einige Fragmente, die aus einer RelativeLayout
dynamisch mit Code hinzugefügt und entfernt werden. Einer der Fragmente ist ein ListFragment
, und als Gegensatz zu meinen anderen Fragmenten, die einen Close und Save Button haben, enthält dieser nur eine Liste.Entfernen Fragment durch Klicken/Berühren außerhalb:
Mein Ziel ist es, dieses Fragment zu schließen/zu entfernen, indem Sie an einer beliebigen Stelle in der Aktivität darauf klicken.
Ich habe den folgenden Code gefunden:
@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);
}
, dass eine nicht Vollbild-Aktivität schließt, wenn außerhalb davon klicken, aber ich scheine einfach nicht zu verstehen, wie ich mein Fragment Rechteck finden.
Könnte jemand helfen und mir in die richtige Richtung zeigen? Jede Hilfe wäre willkommen.
Danke.
nicht wirklich verstanden Ihre Antwort, haben Sie gelesen haben meine Frage bis zum Ende? –