Mam kilka fragmentów, które są dodawane i usuwane z RelativeLayout
dynamicznie za pomocą kodu. Jednym z Fragmentów jest ListFragment
, a jako przeciwny do innych moich fragmentów, które mają Przyciski Zamknij i Zapisz, ten zawiera tylko listę.Usuwanie fragmentu przez kliknięcie/dotknięcie na zewnątrz:
Moim celem jest zamknięcie/usunięcie tego fragmentu, klikając poza nim w dowolnym miejscu aktywności.
znalazłem następujący kod:
@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);
}
który zamyka działalność nie na pełnym ekranie po kliknięciu poza nim, ale ja po prostu nie wydają się zrozumieć, w jaki sposób mogę znaleźć fragment prostokąt.
Czy ktoś może pomóc i wskazać mi właściwy kierunek? Każda pomoc będzie doceniona.
Dzięki.
naprawdę nie zrozumiał swoją odpowiedź, że czytasz moje pytanie aż do końca? –