2014-09-29 4 views
25

Ich möchte dieses Verhalten [https://github.com/gleue/TGLStackedViewController] in einer App implementieren, die ich versuche zu machen.Erstellen Sie UI wie Chrome für Android

Die nächste Sache/der Effekt, den ich erreichen möchte, ist, wie sich der Google Chrome-Browser verhält.

  1. Tile/Karten-Schnittstelle
  2. Lage sein, eine Form der Navigation für den Zugriff (Zugriff andere tabs), wenn der Benutzer die Adressleiste nach unten zieht
  3. der Lage sein, neu zu ordnen, um die Laschen in jeder beliebigen Reihenfolge der Benutzer wünscht

Foto von diesem Android Layout : How to implement a UI similar to deck of cards? SO Frage genommen

Gibt es jemanden da draußen, der versucht hat, diese Art von Verhalten zu implementieren? Kennst du Bibliotheken, die helfen können, diesen Effekt zu erzielen? Es wäre sehr hilfreich! Danke

+0

lesen über ViewGroup und insbesondere OnLayout-Methode, dann wird es einfacher sein, benutzerdefinierte Karte wie Container – pskink

+0

Was ist falsch mit dem TGLStackViewController? –

+0

@KevinCrain Ich bin auf der Suche nach einer Bibliothek für ANDROID :) – momoja

Antwort

7

Wenn Sie den AOSP-Code durchsehen möchten, ist die Funktionalität, nach der Sie suchen, tatsächlich Open-Source und Sie können sie in Android 5.0 auf dem Bildschirm der letzten Apps finden. This ist der Code, den Sie unter github ansehen möchten. Die Ansicht, die Sie aus AOSP extrahieren möchten, ist die RecentsView. Dies wäre der beste Ansatz.

Sie könnten auch in Erwägung ziehen, StackView zu erweitern und onLayout() zu überschreiben, damit Sie die Kinder zur Aufstellung bringen.

Eine andere Option besteht darin, ListView zu erweitern, drawChild oder Layout-Methoden zu überschreiben und zu versuchen, die Ansichten entsprechend ihrer Position zu verschieben. Sie können Inspiration finden here und here

+0

Hallo Andrei, vielen Dank dafür. Ja, ich habe schon versucht, das zu untersuchen, und wenn ich den Code richtig lese, benutzen sie dafür eine angepasste ScrollView ... ich verstehe das nicht so sehr, deshalb versuche ich es auf einem ListView zu implementieren Anpassen von drawChild mithilfe von Kamera- und Matrixoperationen. Danke trotzdem. – momoja

22

systemUI/Recents Paket, wie Andrei erwähnt, kann Ihr Ausgangspunkt sein. Es fügt ein wenig mehr zur flachen Wiedergabe von Chrom-Tabs hinzu.

Ich habe Refactor systemUI/Recents Paket seitdem ich das L-Update bekam. Ich bin endlich dazu gekommen.

enter image description here

Ein Beispielprojekt ist bei gehosteten: Link

Auch wenn der Viewgroup rezykliert, aktualisiert er die Fortschritte Karte (Kinder Eigenschaften) für alle Kinder auf jedem Scroll-Schritt. Dies wird zu Verzögerungen bei großen Datensätzen führen. Für ein paar hundert sollte es in Ordnung sein. Das Beispielprojekt verwendet Picasso zum Laden und Zwischenspeichern von Bildern unter LoremPixel. Da diese zufälligen Bilder & wiederholen können, können Sie überprüfen, ob sie korrekt gebunden sind, indem Sie unten links auf das Bild schauen.

+0

Hallo Vikram, vielen Dank für das Beispielprojekt und ich bin mir sicher, dass es nicht nur mir, sondern auch viel mehr Entwicklern helfen wird. Ich habe bereits versucht, diese AOSP-Implementierung zu untersuchen, aber das Problem, das ich habe, ist, dass es nur für Kitkat und Lollipop richtig ist? Ich versuche auch ICS zu unterstützen. Aber danke dafür. – momoja

+2

@momoja Hi, 'DeckView' (und der darauf basierende AOSP-Code) verwendet APIs, die nur auf Lollipop und höher verfügbar sind. Also, auch keine KitKat Unterstützung. Ich bin zuversichtlich, dass ich in der Lage sein werde, die Mindestanforderungen in den kommenden Wochen (s) zu senken. Ich kann jetzt keine Unterstützung für ICS versprechen :(- die github-Seite wird mit relevanten Informationen aktualisiert. – Vikram

+0

Ja @Vikram Ich bete, dass du es tust. Ich werde deinen Kommentar nicht als akzeptierte Antwort markieren ... zumindest nicht. Seit der Frage ist auf der Suche nach Pre-Lollipop-Unterstützung.Ich hoffe, dass Sie verstehen, dass Sie erfolgreich sein können und aktualisieren Sie es hier, weil die Community den Beitrag sehr schätzen würde. – momoja

Verwandte Themen