wechselt zu einer neuen Aktivität, anstatt Fragmente zu wechseln, wenn auf jfeinstein10s Slidingmenu-Listenelement geklickt wird

8

Ich habe ein paar Fragen zu diesem Thema gesehen (zB: Ссылка ), aber ich bin immer noch unklar . Ich hoffe, dass jemand das klären kann.

Kontext:

Siehe Ссылка

Ich habe eine Android-App, die Bildschirme nach Aktivitäten und Fragmenten organisiert (d. h.) jeder Bildschirm ist eine Aktivität, die ein oder mehrere Fragmente enthält. Die neue Anforderung besteht darin, ein gleitendes Menü hinzuzufügen (ähnlich dem, was diese Bibliothek bietet).

Problem:

Aus den Beispielen und der Diskussion ergibt sich, dass das richtige Modell nur eine MAIN ACTIVITY hätte, die dann Fragmente der verschiedenen Bildschirme ein- und ausschaltet. Tatsächlich erwähnt der Autor im obigen Thread: "Wenn Sie Aktivitäten basierend auf der Listenauswahl starten würden, hätten Sie nicht das Verhalten, bei dem Sie die Ansichten austauschen, über die Sie sprechen." Und auch "Sie können nicht Setzen Sie eine Aktivität in die obige Ansicht. Das ergibt keinen Sinn, wenn Sie daran denken, was eine Aktivität ist.

Warum macht es keinen Sinn? Offensichtlich fehlt mir hier der Punkt.

Frage:

Da mein Projekt bereits mehrere Aktivitäten enthält (eine für jeden Bildschirm), ist meine einzige Option, das Projekt neu zu organisieren, um JUST 1 MAIN ACTIVITY zu haben, um diese Bibliothek zu benutzen? Oder gibt es eine Möglichkeit, eine neue Aktivität zu starten, wenn ein Listenelement im verschiebbaren Menü angeklickt wird und weiterhin das Verhalten des gleitenden Menüs beobachtet wird, [ BEARBEITEN - der letzte Teil wird klarer] oder mit anderen Worten, wie genau diese Bibliothek in meinem bestehenden App-Design zu verwenden ist.

Vielen Dank im Voraus

    
crazy horse 13.03.2013, 18:23
quelle

3 Antworten

4

Erstens können Sie kein Activity in einem anderen haben und die Aktivitäten unterscheiden sich vollständig von den Ansichten, die in Dokumente :

  

Eine Aktivität ist eine einzelne, konzentrierte Sache, die der Benutzer tun kann.

Nun, um Ihre Frage zu beantworten, hängt alles davon ab, wie Ihre App sich verhalten soll. Du könntest deine Aktivitäten mit dem Sliding-Menü die onClosedListener implementieren lassen und von dort auf die ausgewählte Aktivität wechseln. Dies gibt Ihnen die Möglichkeit, das Menü vor dem Wechsel der Aktivitäten zu schließen. Es wird Ihnen auch einen merkwürdigen Effekt geben, da Sie jedes Mal, wenn Sie etwas aus Ihrem Menü auswählen, die Animation einer neuen Aktivität sehen, die nach vorne kommt.

Ich denke, der beste Ansatz wäre, einen "gemeinsamen Zweck" zwischen all Ihren gleitenden Menüoptionen zu haben. Zum Beispiel muss ich in einem meiner Projekte den Benutzern erlauben, zwischen Listen verschiedener Datentypen zu wählen. Wenn der Benutzer etwas aus dem Menü auswählt, lade ich ein neues Listenfragment in die rechte Ecke, wo er das Element auswählen kann, das er anzeigen oder bearbeiten möchte. Das ist der Einstiegspunkt für die App und auch der einzige Ort, an dem ich ein gleitendes Menü in meiner App habe. Es ist für jede App, die dieses UI-Entwurfsmuster implementiert, ziemlich gleich. Sehen Sie sich google +, streams und youtube an, wo Sie im Seitenmenü auswählen können, welcher Feed oder Inhalt angezeigt werden soll. Sobald ein Benutzer eine Auswahl trifft, öffne einfach eine neue Aktivität für den ausgewählten Gegenstand (ein g + post, ein Video, ein Nachrichtenartikel, ein Tweet oder was auch immer es ist).

Um das gleitende Menü zu verwenden, muss Ihre App keine Listen mit verschiedenen Daten oder Ähnlichem enthalten. Beachten Sie jedoch, dass die Aktivität mit dem gleitenden Menü ein klares, fokussiertes Ziel in Bezug auf Funktionalität und Zweck haben sollte . Ein gleitendes Menü zu haben, weil viele andere Apps eine solche haben, ist eine schlechte Wahl, Sie sollten es mit einem bestimmten Ziel verwenden. Bedenken Sie auch, dass die Anwendung des gleitenden Menüs überall das Navigationsmuster der Plattform beeinträchtigen und zu einem Gesamtbild führen würde schlechte Benutzererfahrung, da es sich nicht wie die anderen Apps verhalten würde.

    
ebarrenechea 13.03.2013, 19:16
quelle
2

Es macht keinen Sinn, eine Aktivität in die obige Ansicht zu platzieren, da die Aktivität der Hauptcontroller für die Ansicht jedes Bildschirms ist. Die Aktivität zeigt auch Ansichten und verfolgt Fragmente (die wiederum Mini-Controller sind, mit oder ohne eigene Ansichten). Wenn Sie also eine Aktivität in die obige Ansicht platzieren, würde das bedeuten, dass Sie eine Aktivität in eine Aktivität einfügen würden ... Was unmöglich ist.

Aus dem, was ich von Ihrem Text ableiten kann, denke ich, dass es klug wäre, den Android-Entwicklerleitfaden zu Aktivitäten und Fragment erneut durchzulesen ( Ссылка ), um besser zu verstehen, wie das Konzept von Android funktioniert.

Nun zu Ihrer Frage:

Ich weiß nicht genau, was Sie erreichen möchten, aber wenn Sie möchten, dass sich Ihre App mit Menü wie die Google+ App verhält, dann implementieren Sie eine Basisklasse, die die Aktivitätsklasse erweitert ( oder was immer Basisaktivität in Ihrem Projekt verwendet) und lassen Sie die Basis das SlidingMenu setzen. Dann würden Sie einfach Ihre Basisaktivität in jedem der Aktivitäten erweitern, die ein Menü haben sollen.

Sie könnten es auch so machen, wie Sie es beschreiben, aber dann würden Sie mit einem klassischen Beispiel eines God-Objekts enden ( Ссылка ). Es ist eine gute Möglichkeit, Ihre Fragment-Jonglierfähigkeiten zu üben und zwischen Fragmenten zu wechseln, anstatt neue Aktivitäten zu starten. Es hat Anwendungsfälle, aber ich würde es immer noch nicht für ein Projekt mit mehr als ein paar Ansichten empfehlen.

    
Qw4z1 14.03.2013 04:32
quelle
1

Hier ist die Antwort, die der Frage, die ich hatte - Ссылка am nächsten kam . Scrollen Sie bis zum Ende der Seite, um den letzten Abschnitt mit dem Titel "Verwenden des Fly-In-App-Menüs zwischen Aktivitäten" anzuzeigen. Dies ist eine Option, wenn Sie viele Aktivitäten in Ihrer bestehenden App haben und ein umfassendes Re-Factoring vermeiden möchten. Ich habe das noch nicht ausprobiert, aber es lohnt sich, es zu beachten.

    
crazy horse 18.03.2013 20:34
quelle

Tags und Links