Fragments
In Android 3.0 wurden Fragmente eingeführt, die zeigen, wie sich flexiblere Entwürfe für die vielen verschiedenen Bildschirmgrößen von Smartphones und Tablets unterstützen lassen. In diesem Artikel wird beschrieben, wie Sie Fragmente verwenden, um Xamarin.Android-Anwendungen zu entwickeln, und wie Sie Fragmente auf Geräten mit Versionen vor Android 3.0 (API-Ebene 11) unterstützen.
Übersicht über Fragmente
Die größeren Bildschirme der meisten Tablets haben die Entwicklung für Android schwieriger gemacht: Ein Layout, das für kleine Bildschirme entworfen wurde, funktioniert nicht notwendigerweise auch auf größeren Bildschirmen und umgekehrt. Um die dadurch entstandene Komplexität bei der Entwicklung zu mindern, wurden in Android 3.0 zwei neue Features eingeführt: Fragmente (Fragments) und Unterstützungspakete (Support Packages).
Sie können sich Fragmente als Module der Benutzeroberfläche vorstellen. Sie ermöglichen es dem Entwickler, die Benutzeroberfläche in isolierte, wiederverwendbare Abschnitte zu unterteilen, die in separaten Aktivitäten ausgeführt werden können. Zur Laufzeit entscheiden die Aktivitäten selbst, welche Fragmente verwendet werden sollen.
Unterstützungspakete wurden ursprünglich als Compatibility Libraries (Kompatibilitätsbibliotheken) bezeichnet und ermöglichen die Verwendung von Fragmenten auf Geräten, auf denen Android-Versionen vor Android 3.0 (API-Ebene 11) ausgeführt wird.
Die folgende Abbildung veranschaulicht, wie eine einzelne Anwendung Fragmente in verschiedenen Geräteformfaktoren verwendet.
Fragment A enthält eine Liste, und Fragment B enthält Details zu einem in dieser Liste ausgewählten Element. Wenn die Anwendung auf einem Tablet ausgeführt wird, können beide Fragmente in derselben Aktivität angezeigt werden. Wenn dieselbe Anwendung auf einem Smartphone mit einem kleineren Bildschirm ausgeführt wird, werden die Fragmente in zwei separaten Aktivitäten gehostet. Fragment A und Fragment B sind in beiden Formfaktoren gleich, aber die Aktivitäten, die diese hosten, unterscheiden sich voneinander.
Damit eine Aktivität all diese Fragmente koordinieren und verwalten kann, wurde in Android eine neue Klasse namens FragmentManager eingeführt. Jede Aktivität verfügt über eine eigene Instanz von FragmentManager
, um gehostete Fragmente hinzuzufügen, zu löschen und zu finden. Das folgende Diagramm veranschaulicht die Beziehung zwischen Fragmenten und Aktivitäten:
In verschiedener Hinsicht können Fragmente als zusammengesetzte Steuerelemente oder Miniaktivitäten betrachtet werden. Sie bündeln Teile der Benutzeroberfläche in wiederverwendbare Module, die dann unabhängig von Entwicklern in Aktivitäten verwendet werden können. Ein Fragment verfügt genau wie eine Aktivität über eine Ansichtshierarchie, kann aber im Gegensatz zu einer Aktivität in verschiedenen Bildschirmen verwendet werden. Ansichten unterscheiden sich von Fragmenten insofern, als Fragmente einen eigenen Lebenszyklus aufweisen, was für Ansichten nicht gilt.
Eine Aktivität kann zwar ein oder mehrere Fragmente hosten, hat aber keine direkte Kenntnis der Fragmente selbst. Ebenso haben Fragmente keine direkte Kenntnis von anderen Fragmenten in der Hostaktivität. Fragmente und Aktivitäten haben jedoch Kenntnis vom FragmentManager
in ihrer Aktivität. Durch Verwendung von FragmentManager
kann eine Aktivität oder ein Fragment einen Verweis auf eine bestimmte Instanz eines Fragments abrufen und dann in dieser Instanz Methoden aufrufen. Auf diese Weise können Aktivitäten und Fragmente mit anderen Fragmenten kommunizieren und interagieren.
Dieser Leitfaden bietet umfassende Informationen zur Verwendung von Fragmenten, u. a. folgende:
- Erstellen von Fragmenten: Informationen zum Erstellen eines grundlegenden Fragments und zu den wichtigsten Methoden, die implementiert werden müssen.
- Fragmentverwaltung und Transaktionen: Informationen zum Ändern von Fragmenten zur Laufzeit.
- Android-Unterstützungspaket: Informationen zu den Bibliotheken, die eine Verwendung von Fragmenten in älteren Android-Versionen ermöglichen.
Anforderungen
Fragmente sind ab API-Ebene 11 (Android 3.0) im Android SDK verfügbar, wie im folgenden Screenshot gezeigt:
Fragmente sind in Xamarin.Android 4.0 und höher verfügbar. Eine Xamarin.Android-Anwendung muss mindestens für die API-Ebene 11 (Android 3.0) konzipiert sein, um Fragmente verwenden zu können. Das Zielframework kann in den Projekteigenschaften festgelegt werden, wie im Folgenden gezeigt:
Mithilfe des Android-Unterstützungspakets und Xamarin.Android 4.2 oder höher ist es möglich, Fragmente in älteren Android-Versionen zu verwenden. Details dazu finden Sie in den Dokumenten dieses Abschnitts.