Wenn Fragments
verwenden, können Sie die View
von ihnen als und die Activity
als die Controller
denken kann . Meiner Meinung nach war Fragments Googles Reaktion auf die Unterstützung von Tabletten, und jetzt stecken wir fest :(
Ich benutze Fragmente jeden Tag, und ich fühle sicherlich deine Schmerzen. Als ich zuerst über sie gelesen habe, dachte ich mir „das ist wirklich cool“, aber sie nach der Verwendung, sie in so vielerlei Hinsicht zu kurz, vor allem aber, weil ich sie falsch :(
Hier einige fallen, die ich gestoßen verwenden würde ...
Verwenden Sie nicht onclick
in Ihrem Fragment-Layout, da es die Activity
und nicht dieist 10, die den Klick verarbeiten. Wenn Sie das Attribut verwenden und später das Fragment in einem anderen Activity
verwenden, müssen Sie daran denken, auch die onclick
-Methode zu dieser Activity
hinzuzufügen. Verwenden Sie also eine findViewById
und hängen Sie den Click-Handler dann manuell an die onCreateView
des Fragments an.
Wenn Sie mit anderen Fragmenten kommunizieren, verwenden Sie Activity
als Controller, um die Nachricht zu leiten. (Viele Beispiele, wie dies mit Schnittstellen funktioniert). Der Schlüssel hier ist, dass wenn Sie mehrere Fragmente auf einem Gerät ausführen, wo ein Fragment direkt mit einem anderen Fragment kommuniziert, dann stoßen Sie auf ein seltsames, aber vorhersehbares Verhalten. Wenn zum Beispiel Fragment A direkt eine Ansicht in Fragment B aktualisiert, aber Fragment B nicht sichtbar ist (weil Sie es ersetzt haben - ein Telefon betrachten), dann wird View
möglicherweise nicht aktualisiert, wenn Fragment B sichtbar ist View
wird neu erstellt. Wenn Sie also eine Fragment
aktualisieren, achten Sie darauf, die Daten in einem Fragment zu aktualisieren, dann aktualisieren Sie die View
Teile in der onCreateView
, die aufgerufen wird, wenn das Fragment wieder sichtbar wird (dh Sie haben das aktuelle Fragment, Sie zeigen jetzt die vorherige 1)
Erstellen Sie keine vollständige Anwendung, die nur Fragmente verwendet. Stattdessen bilde Apps wie du normalerweise, mit Activities und dann behandelst die eine verherrlichte View (was es ist). dh, die App so zu gestalten, dass Sie mehrere Fragmente und mehrere Aktivitäten haben und einige Aktivitäten mehr als ein Fragment verwenden können.
Mein erster Gedanke mit Fragmenten war, wo ich es toll gedacht, nur eine komplette App zu bauen Fragmente und eine Aktivität mit ... Ich beendete schließlich die App, aber ich lief in so viele Probleme mit, dass Ansatz. Mein nächster Ansatz war, mehrere Fragmente und mehrere Aktivitäten zu verwenden, und es ging viel besser.
Unterm Strich ist, dass Fragmente groß sind, wenn man sie als View
verwenden, aber wenn Sie versuchen, beginnen sie wie Aktivitäten zu verwenden, dann Sie gehen auf Probleme stoßen :(denken an die von Activiy
->Fragment
als das Wesen die Controller
->View
.
Ich empfehle auch, dass Sie neben dem Activity Lifecycle (Pro Android 4 hat ein großes Bild darzustellen, die sie), und Sie werden sich Stunden Schmerzen sparen :)
I don‘das Fragment Lifecycle lesen und verstehen Ich habe genug Erfahrung, um zu antworten, aber mein erster Durchlauf an Fragmenten ließ mich ihre Verwendung in Nicht-Tablet-Apps in Frage stellen. Definitiv eine Zunahme der Komplexität für eine bescheidene Verbesserung der UI-Entwicklung. – tcarvin