Android - Fragmente

EIN Fragment ist ein Teil einer Aktivität, die ein modulareres Aktivitätsdesign ermöglicht. Es wird nicht falsch sein, wenn wir sagen, ein Fragment ist eine Art sub-activity.

Es folgen wichtige Punkte zum Thema Fragment -

  • Ein Fragment hat ein eigenes Layout und ein eigenes Verhalten mit eigenen Rückrufen für den Lebenszyklus.

  • Sie können Fragmente in einer Aktivität hinzufügen oder entfernen, während die Aktivität ausgeführt wird.

  • Sie können mehrere Fragmente in einer einzigen Aktivität kombinieren, um eine Benutzeroberfläche mit mehreren Fenstern zu erstellen.

  • Ein Fragment kann in mehreren Aktivitäten verwendet werden.

  • Der Fragmentlebenszyklus hängt eng mit dem Lebenszyklus seiner Wirtsaktivität zusammen. Wenn die Aktivität angehalten wird, werden auch alle in der Aktivität verfügbaren Fragmente gestoppt.

  • Ein Fragment kann ein Verhalten implementieren, das keine Benutzeroberflächenkomponente enthält.

  • Fragmente wurden der Android-API in der Honeycomb-Version von Android hinzugefügt, die API-Version 11.

Sie erstellen Fragmente durch Erweitern Fragment Klasse und Sie können ein Fragment in Ihr Aktivitätslayout einfügen, indem Sie das Fragment in der Layoutdatei der Aktivität als <fragment> Element.

Vor der Fragmenteinführung hatten wir eine Einschränkung, da wir zu einem bestimmten Zeitpunkt nur eine einzige Aktivität auf dem Bildschirm anzeigen können. Daher konnten wir den Gerätebildschirm nicht unterteilen und verschiedene Teile separat steuern. Mit der Einführung des Fragments haben wir jedoch mehr Flexibilität erhalten und die Einschränkung aufgehoben, dass jeweils nur eine Aktivität auf dem Bildschirm angezeigt wird. Jetzt können wir eine einzelne Aktivität haben, aber jede Aktivität kann aus mehreren Fragmenten bestehen, die ihr eigenes Layout, ihre eigenen Ereignisse und ihren eigenen Lebenszyklus haben.

Im Folgenden finden Sie ein typisches Beispiel dafür, wie zwei durch Fragmente definierte UI-Module für ein Tablet-Design zu einer Aktivität kombiniert, für ein Mobilteil-Design jedoch getrennt werden können.

Die Anwendung kann zwei Fragmente in Aktivität A einbetten, wenn sie auf einem Gerät in Tablet-Größe ausgeführt wird. Auf einem Bildschirm in der Größe eines Mobilteils ist jedoch nicht genügend Platz für beide Fragmente vorhanden. Daher enthält Aktivität A nur das Fragment für die Liste der Artikel. Wenn der Benutzer einen Artikel auswählt, wird Aktivität B gestartet, die das zweite zu lesende Fragment enthält der Artikel.

Fragment Lebenszyklus

Android-Fragmente haben einen eigenen Lebenszyklus, der einer Android-Aktivität sehr ähnlich ist. Dieser Abschnitt beschreibt verschiedene Phasen seines Lebenszyklus.

Fragmentlebenszyklus

Hier ist die Liste der Methoden, die Sie in Ihrer Fragmentklasse überschreiben können:

  • onAttach()Die Fragmentinstanz ist einer Aktivitätsinstanz zugeordnet. Das Fragment und die Aktivität sind nicht vollständig initialisiert. In der Regel erhalten Sie bei dieser Methode einen Verweis auf die Aktivität, die das Fragment für weitere Initialisierungsarbeiten verwendet.

  • onCreate()Das System ruft diese Methode beim Erstellen des Fragments auf. Sie sollten wesentliche Komponenten des Fragments initialisieren, die Sie beibehalten möchten, wenn das Fragment angehalten oder gestoppt und dann fortgesetzt wird.

  • onCreateView()Das System ruft diesen Rückruf auf, wenn das Fragment zum ersten Mal seine Benutzeroberfläche zeichnen soll. Um eine Benutzeroberfläche für Ihr Fragment zu zeichnen, müssen Sie a zurückgebenViewKomponente aus dieser Methode, die die Wurzel des Layouts Ihres Fragments ist. Sie können null zurückgeben, wenn das Fragment keine Benutzeroberfläche bietet.

  • onActivityCreated()Die onActivityCreated () wird nach der onCreateView () -Methode aufgerufen, wenn die Hostaktivität erstellt wird. Aktivität und Fragmentinstanz wurden erstellt sowie die Ansichtshierarchie der Aktivität. Zu diesem Zeitpunkt kann auf die Ansicht mit der Methode findViewById () zugegriffen werden. Beispiel. In dieser Methode können Sie Objekte instanziieren, für die ein Kontextobjekt erforderlich ist

  • onStart()Die onStart () -Methode wird aufgerufen, sobald das Fragment sichtbar wird.

  • onResume()Fragment wird aktiv.

  • onPause()Das System ruft diese Methode als ersten Hinweis darauf auf, dass der Benutzer das Fragment verlässt. Hier sollten Sie normalerweise alle Änderungen festschreiben, die über die aktuelle Benutzersitzung hinaus beibehalten werden sollen.

  • onStop()Das Fragment wird durch Aufrufen von onStop () gestoppt.

  • onDestroyView()Die Fragmentansicht wird nach dem Aufruf dieser Methode zerstört

  • onDestroy()onDestroy () hat aufgerufen, um den Status des Fragments endgültig zu bereinigen, wird jedoch nicht garantiert von der Android-Plattform aufgerufen.

Wie benutzt man Fragmente?

Dies umfasst eine Reihe einfacher Schritte zum Erstellen von Fragmenten.

  • Entscheiden Sie zunächst, wie viele Fragmente Sie in einer Aktivität verwenden möchten. Zum Beispiel möchten wir zwei Fragmente verwenden, um die Quer- und Hochformatmodi des Geräts zu handhaben.

  • Erstellen Sie als Nächstes basierend auf der Anzahl der Fragmente Klassen, die die Fragmentklasse erweitern . Die Fragment-Klasse verfügt über die oben genannten Rückruffunktionen. Sie können jede der Funktionen basierend auf Ihren Anforderungen überschreiben.

  • Entsprechend jedem Fragment müssen Sie Layoutdateien in einer XML-Datei erstellen. Diese Dateien haben ein Layout für die definierten Fragmente.

  • Ändern Sie abschließend die Aktivitätsdatei, um die tatsächliche Logik zum Ersetzen von Fragmenten basierend auf Ihren Anforderungen zu definieren.

Arten von Fragmenten

Grundsätzlich werden Fragmente wie unten gezeigt in drei Stufen unterteilt.

  • Einzelbildfragmente - Einzelbildfragmente werden für Handhaltegeräte wie Mobiltelefone verwendet. Hier können wir nur ein Fragment als Ansicht anzeigen.

  • Listenfragmente - Fragmente mit einer speziellen Listenansicht werden als Listenfragment bezeichnet

  • Fragmenttransaktion - Verwendung mit Fragmenttransaktion. Wir können ein Fragment in ein anderes Fragment verschieben.