Vorwort
Nachdem er Java und Android fast ein Jahr lang gelernt hat, sollten die Ergebnisse des Zeitraums darin bestehen, einen Android -Kunden unabhängig zu vervollständigen und die Stabilität seiner Hauptlinienversion zu gewährleisten. In dieser Zeit habe ich viel Grube begegnet und habe auch viel Android -Wissen mit meinem Bruder gelernt. Aber die Menschen müssen immer Veränderungen annehmen und sich nicht zu bequem machen. Hier fassen wir die meisten Fragmente zusammen, die in den vorherigen Elementen verwendet wurden.
Einführung in Fragment
Fragment kann als Verhalten oder Teil der Benutzeroberfläche in der Aktivität verstanden werden und muss in der Aktivität verschachtelt sein. Ein Fragment verfügt jedoch über eine eigene unabhängige XML -Layout -Datei und eine gute Verpackung.
Fragment erstellen
Erstellen Sie ein Fragment und erstellen Sie eine Aktivität.
Die XML -Layoutdateien entsprechen beispielsweise die unten angegebenen Layout -Dateien (Fragment_Layout.xml):
<? Match_areat "android: orientation =" vertikal "> <textView Android: id ="@+id /textView "Android: layout_width =" Wrap_Content "Android: la yout_Height =" Wrack_Content "Android: text =" @string /testView " / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / //isches Jahr" @string /testview " / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / //isches" / / / / / / / / / / / / / / / / / / / / / / / //- > <Button Android: id = "@+id /button" Android: layout_width = "Wrap_Content" Android: layout_Height = "Wrap_Content" Android: text = "@string /button" /> < /linearlayout>
Im Java -Code können im Allgemeinen die folgenden Lebenszyklusmethoden nach Bedarf implementiert werden: Fragment:
1. Onattach (): Wenn das Fragment von der Aktivität abhängt, können Sie den Aktivitätsgriff in dieser Methode erhalten, um die Kommunikation zwischen Fragment und Aktivität zu erreichen.
2. OnCreate (): Initialisieren Sie den Rahmen.
3.. OnCreateView (): Das System ruft diese Methode auf, wenn die Benutzeroberfläche zum ersten Mal für Fragment gezeichnet wird.
4. Onaktivitätscired (): Nachdem Sie von der Funktion der Host -Aktivität ausgeführt wurden, können Sie die eigene Widget -Instanz- und Geschäftslogikverarbeitung von Fragment in dieser Methode ausführen.
5. OnDestoryView (): Rufen Sie an, wenn der Rahmen zerstört wird.
6. OnStart (): Rufen Sie an, wenn Fragment sichtbar sein kann.
Es gibt auch viele andere Rückruffunktionen, mit denen Sie den Fragment -Lebenszyklus manipulieren können.
Fragmentlebenszyklus
Jedes Fragment verfügt über seine eigenen Rückrufmethoden für Lebenszyklus und verarbeitet seine eigenen Benutzereingabeereignisse. Der entsprechende Lebenszyklus ist in der folgenden Abbildung dargestellt:
Fügen Sie die Aktivität Fragment hinzu
Zunächst müssen Sie sicherstellen, dass die Akklexivität Fragment unterstützt, sodass die Aktivität normalerweise von der Fragmentaktivität erben muss. In der Regel gibt es zwei Methoden, um die Aktivität Fragment hinzuzufügen: statisch und dynamisch.
Die statische Methode fügt Fragment direkt zur Aktivitätsdatei XML hinzu, wie unten gezeigt:
<? Match_Pareant "Android: BaselineAnted =" False "Android: Orientierung =" Horizontal "> <Fragment Android: id ="@+id/First "Android: name =" com. layout_Height = "match_parent" Android: layout_weight = "1" /> <Fragment Android: id = "@+id /second" android: name = "com.example.se condfragment" Android: layout_width = "0dp" Android: Layout_Height = "Match_Parent" Android: layout_weight = "1" /> < /linearlayout>
Wenn das Attribut für Android: Name in <Pragment> die instanziierte Fragmentklasse im Layout angibt, wenn das Aktivitätslayout erstellt wird, hat es jeden Frame in der Layout -Datei instanziiert und aufgerufen, um sie zu rufen, um jeden zu erhalten, um jedes Fragmentlayout zu erhalten . Das System fügt die vom <Pragment> -Elementsposition zurückgegebene Ansicht direkt ein
Hinweis: Jedes Fragment erfordert eine eindeutige Identifizierung. Es gibt drei Möglichkeiten, IDs für Fragment bereitzustellen: Es gibt drei Möglichkeiten:
Dynamische Methode
Verwenden Sie eine Fragmenttranskation. Sie können die API der Fragmenttranskation verwenden, um das Aktivitätsfragment zu bedienen (z. B. Hinzufügen, Entfernen oder Ersetzen von Fragment). Der Referenzcode lautet wie folgt:
FragmentManager FragmentManager = GetFragmentManager () FragmentTransaction FragmentTraction = FragmentManager.BeginTraction ();
Der erste Parameter der Funktion add () ist die Ansichtsgruppe des Fragments, die durch die Ressourcen -ID (Ressourcen -ID) angegeben ist. Sobald sie durch FragmentTranscation geändert wurden, sollte es sich mit visuellen Veränderungen von Commit () wirken lassen.
Fragmente Kommunikation
Fragmente sollten nicht direkt kommuniziert werden, und die Interaktion zwischen ihnen sollte durch die Wirtsaktivität durchgeführt werden. Es gibt drei Möglichkeiten, mit Fragment und Akitivität zu interagieren:
1. Aktivität erzeugt ein Fragment mit Parametern.
2. Aktivität behält den Objektgriff des Fragments bei, das direkt als öffentliche Methode des Fragments durch den Griff bezeichnet werden kann.
3. Fragment kann den definierten Hörergriff in der Onattach -Funktion erhalten.
Erstellen Sie den Rahmen mit Parametern
In bestimmten Fällen kann Fragment spezifische Parameter zur Initialisierung erfordern. Da das Fragment nur einen Ginseng -Konstruktor haben muss, können Sie die statische Neuinstallitätsmethode verwenden, um ein Fragment mit Parametern zu erstellen. Der Beispielcode lautet wie folgt:
Android.os.bundle; ; "Num", num);
Sie können einfach einen Parameter mit Parametern in der Aktivität laden:
FragmentTransaction ft = GetSupportFagmentManager ().
Die Methode zum Aufrufen von Fragment
Da Aktivität den eingebetteten Fragmentgriff erhalten kann, kann diese Methode direkt durch den Fragmentgriff aufgerufen werden.
Public class testFragment erweitert Fragment {public void dosomething (String Param) {// etwas in Fragment}}} tun In der Aktivität können Sie diese Methode direkt über das Objektgriff des Fragments aufrufen:
Öffentliche Klasse erweitert die Fragmentität {@Override public void OnCreate (Bündelsparnis) {Super.oncreate (SaveDincestate); Fragment -Hörer
Wenn das Fragment Ereignisse für Aktivität teilen muss, muss diese Methode angewendet werden. Fragment definiert eine Schnittstelle, und diese Schnittstelle wird durch Aktivität implementiert. Die Aktivität der Schnittstelle wird in der Onattach () -Methode erreicht.
Der definierte Schnittstellencode in Fragment lautet wie folgt:
Android.Support.V4.App.Fragment; Verwenden Sie die Kommunikation mit öffentlichen Schnittstellen onItemSelectListener {public void onrSeStemSelect (String -Link);} // Speichern Sie den Hörer (Aktivität), bei dem Ereignisse abgefeuert werden, sobald das Fragment angehängt ist ); Listener.onrssiteMSelect ("ein Link");}}Implementieren Sie diese Schnittstelle in Aktivität:
Android.Support.V4.App.FragmentActivity; DetailFragment);} // Jetzt können wir die Aktion im Aktivität definieren, wenn die Fragment -Ereignisdateien @Override public void onrseStemSelect (String -Link) {if (Fragment! );}}}