Activity schließen indem man die Activity nach unten "zieht"

  • 12 Antworten
  • Letztes Antwortdatum
F

Feuerstern

Fortgeschrittenes Mitglied
28
Hallo Leute,
In der Kontakte App kann man die Detail Ansicht über einen Kontakt schließen indem man sie nach unten "zieht".
Habt ihr vlt eine Idee wie ich das ganze Umsetzten kann oder gibt es dafür vlt eine library?

Grüße
Feuerstern
 
Ich weiß zwar nicht genau was du meint (also habe das Bild gerade nicht vor Augen), aber machbar wäre das zB über einen SwipeGestureListener SwipeGestureListener - Google-Suche (und ein Fragment).
 
Danke für deine Antwort.
Habe mal ein Gif von dem Ganzen erstellt:
r2ntsoa2.gif


Die Activity schließt sich wen man mit dem Finger nach unten wischt und diese damit nach unten "zieht".
 
Das sieht mir aber ncit nach einer Activity aus sndern nach einer normalen View die man hin und her bewegt....
 
Die View oder die Activity besitzt auf jeden Fall eine Toolbar. Wenn man mehr Inhalt hat und runterscrollt klappt sich der Orangene Bereich ein und wird zu einer normalen Toolbar. Kann das denn dan eine normale View sein?
 
Könnte auch ein Fragment sein. Eine andere Activity aber ganz sicher nicht. Wüsste nicht dass Android die vorhergehende Activity mitrendert, die ja ganz klar zu sehen ist im Hintergrund.
 
  • Danke
Reaktionen: Feuerstern
Stimmt das hab ich garnicht bedacht. Toolbars sind glaub ich ja sogar normale views, dann sollte das so durchaus gehen. Aber wie bekomm ich es hin das eine View oder Fragment so über der ganzen Activity liegt?
 
Okay, jetzt weiß ich was du meinst. :) Hmm, ich weiß leider auch nicht wie das gemacht wurde. Ich würde auf einen Activity-Wechsel tippen, der eben diese Animation anzeigt - seit Lollipop geht da erfahrungsgemäß einiges. Gleichzeitig wäre natürlich auch ein Fragment denkbar, dass dann aus- und wieder eingehängt wird - hier führt der (Support)FragmentManager die Animation aus. Aber auch die Idee mit der View wäre denkbar (sofern die später ebenfalls interaktiv bedienbar sein soll, könnte das ggf. ziemliches Chaos im Code hervorrufen <- nur eine Vermutung).
Letztlich wird es von deiner App abhängen, welche Implementation am meisten Sinn macht.

Zu deiner letzten Frage -> erstelle ein zusätzliches Layout (zB ein FrameLayout) in einer Activity und sorge dafür, dass es "on top" dargestellt ist (sinnvollerweise sollte das Layout irgendeine andere Hintergrundfarbe haben als die GUI dahinter und match_parent hinsichtlich der Abmessungen sein), nun gibst du diesem Layout eine Animation (hier mehr dazu) und rufst in deiner Activity nach 1-2 sek setVisibility(View.GONE) auf.

Wie gesagt, welche Lösung für dich nun am besten passt, hängt vom Verwendungszweck und teils auch deinem bisherigen Code ab. Aus dem Bauch heraus würde ich sagen, dass man mit einem Fragment (wie so oft) einen guten Kompromiss findet - Nachteil ist aber, dass man sich uU um weitere Rahmenbedingungen Gedanken machen muss (Stichwort "Orientation-Changes").
 
  • Danke
Reaktionen: Feuerstern
Das sind zwei Views. Der eine View liegt über den Zweiten. Mit einer gut gemachte "Animation" wird der obere View (KontaktView) ein und ausgeblendet.
 
  • Danke
Reaktionen: Feuerstern und missspelled
@markus.tullius die "Host"-Activity wird dann über den Context aufgelöst, oder?
Also bspw via
((MainActivity) ctx).getX();
 
Ist völlig egal, ob du es in einer Activity oder einem Fragment machst. Du legst einfach Views im rootView übereinander und animierst sie. Du muss nur die Position der Touch-Events abfragen, und auf eine Bewegung nach unten (y wird größer) reagieren.

Habe mal so etwas ähnliches gebaut. Eigentlich ist es das gleiche Prinzip wie beim NavigationsDrawer.
 
  • Danke
Reaktionen: Feuerstern und missspelled
Es ist definitiv eine Acitivity. Die gleiche Activity kann man nämlich aus seiner App raus starten mit dem passenden Intent. Auch dort legt sie sich dann erstmal halbtransparent darüber und erscheint unten. Dann kann man hochscrollen und das Bild wird zur Toolbar.
Wie es gemacht ist, weiß ich aber leider nicht.
 
  • Danke
Reaktionen: Feuerstern und missspelled
Finde ich irgendwie unsinnig für einen Kontakt eine neue Actiity zu öffnen. Gibt es da irgendwelche Vorteile statt einem Fragment?
 
Zurück
Oben Unten