628 Stimmen

Warum Fragmente, und wann sollte man Fragmente anstelle von Aktivitäten verwenden?

In Android API 11+ hat Google eine neue Klasse namens Fragment .

In den Videos schlägt Google vor, dass wann immer möglich ( Link1 , Link2 ), sollten wir Fragmente anstelle von Aktivitäten verwenden, aber sie haben nicht genau erklärt, warum.

Was ist der Zweck von Fragmenten und welche Verwendungsmöglichkeiten gibt es (abgesehen von einigen UI-Beispielen, die leicht durch einfache Ansichten/Layouts erreicht werden können)?

Meine Frage bezieht sich auf Fragmente:

  1. Wozu dient die Verwendung eines Fragments?
  2. Was sind die Vor- und Nachteile der Verwendung von Fragmenten im Vergleich zur Verwendung von Aktivitäten/Ansichten/Layouts?

Bonusfragen:

  1. Können Sie einige wirklich interessante Verwendungsmöglichkeiten für Fragmente nennen? Dinge, die Google in seinen Videos nicht erwähnt hat?
  2. Wie kommuniziert man am besten zwischen Fragmenten und den Aktivitäten, die sie enthalten?
  3. Was ist das Wichtigste bei der Verwendung von Fragmenten zu beachten? Gibt es Tipps und Warnungen aus Ihrer Erfahrung?

11voto

Nithin Baby Punkte 7436

Fragmente sind in einigen Fällen von besonderem Nutzen, z. B. wenn wir eine Navigationsschublade auf allen unseren Seiten beibehalten wollen. Sie können ein Frame-Layout mit einem beliebigen Fragment aufblasen und haben dennoch Zugriff auf die Navigationsschublade.

Hätten Sie eine Aktivität verwendet, hätten Sie die Schublade in allen Aktivitäten behalten müssen, was zu überflüssigem Code führt. Dies ist eine interessante Verwendung eines Fragments.

Ich bin neu bei Android und denke immer noch, dass ein Fragment auf diese Weise hilfreich ist.

5voto

einschnaehkeee Punkte 1838

Ich weiß, dass dies bereits zu Tode diskutiert wurde, aber ich möchte noch einige Punkte hinzufügen:

  • Frags können verwendet werden, um die Menu s und kann mit MenuItem Klicks auf eigene Faust. So erhalten Sie weitere Modulationsmöglichkeiten für Ihre Aktivitäten. Sie können ContextualActionBar-Zeug und so weiter tun, ohne dass Ihre Aktivität davon weiß, und können es im Grunde von den grundlegenden Sachen entkoppeln, die Ihre Aktivität behandelt (Navigation/Einstellungen/Über).

  • Ein übergeordnetes Frag mit untergeordneten Frags kann Ihnen weitere Optionen zur Modulierung Ihrer Komponenten bieten. So können Sie z.B. Frags einfach austauschen, neue Frags in einen Pager einfügen oder entfernen, sie neu anordnen. Und das alles, ohne dass Ihre Aktivität etwas davon weiß, sondern sich nur auf die übergeordneten Dinge konzentriert.

4voto

Abhinav Atul Punkte 561

Fragment können als Nicht-Wurzel-Komponenten in einem zusammengesetzten Baum von UI-Elementen betrachtet werden, während Aktivitäten an der Spitze des Waldes von Zusammensetzungen (UI-Bäumen) sitzen.

  • Eine Faustregel, wann no zu verwenden Fragment wenn das Fragment als untergeordnetes Element ein widersprüchliches Attribut aufweist, z. B. wenn es immersiv ist oder einen ganz anderen Stil verwendet oder einen anderen architektonischen/logischen Unterschied aufweist und nicht in den bestehenden Baum passt homogen .

  • Eine Faustregel für die Wahl des richtigen Zeitpunkts Activity über Fragment ist, wenn die Aufgabe (oder der Satz zusammenhängender Aufgaben) völlig unabhängig und wiederverwendbar ist und einige schwere Aufgaben übernimmt und nicht weiter belastet werden sollte, um mit einem anderen Eltern-Kind-Verbund konform zu sein (SRP-Verletzung, die zweite Aufgabe wäre die Konformität mit dem Verbund). Zum Beispiel kann ein MediaCaptureActivity das Audio, Video, Fotos usw. aufnimmt und Bearbeitungen, Rauschentfernung, Anmerkungen zu Fotos usw. ermöglicht. Diese Aktivität/dieses Modul kann untergeordnete Fragmente haben, die eine detailliertere Arbeit leisten und einem gemeinsamen Anzeigethema entsprechen.

3voto

superkytoz Punkte 1251

Ein Fragment lebt innerhalb einer Aktivität, während eine Aktivität für sich selbst lebt.

3voto

maniix Punkte 51

Fragmente lebt im Rahmen der Aktivität und hat:

  • seinen eigenen Lebenszyklus
  • ein eigenes Layout
  • seine eigenen untergeordneten Fragmente und usw.

Betrachten Sie Fragmente als eine Unteraktivität der Hauptaktivität, zu der sie gehören, sie können nicht eigenständig existieren und können immer wieder aufgerufen/verwendet werden. Ich hoffe, das hilft :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X