Einführung in die Xamarin.Forms-Shell

Download Sample Das Beispiel herunterladen

Die Xamarin.Forms-Shell reduziert die Komplexität der Entwicklung mobiler Anwendungen, indem die grundlegenden Features bereitgestellt werden, die von den meisten mobilen Anwendungen benötigt werden, z. B.:

  • Einer zentralen Stelle zur Beschreibung der visuellen Hierarchie einer Anwendung.
  • Eine gemeinsame Benutzeroberfläche für die Navigation.
  • Ein URI-basiertes Navigationsschema, das die Navigation zu jeder Seite in der Anwendung ermöglicht.
  • Ein integrierter Suchhandler.

Darüber hinaus profitieren Shell-Anwendungen von einer höheren Renderinggeschwindigkeit und einer geringeren Arbeitsspeichernutzung.

Wichtig

Bestehende Anwendungen können die Shell übernehmen und sofort von Verbesserungen in den Bereichen Navigation, Leistung und Erweiterbarkeit profitieren.

Visuelle Anwendungshierarchie

In einer Xamarin.Forms-Shellanwendung wird die visuelle Hierarchie der Anwendung in einer Klasse beschrieben, die Unterklassen der Shell-Klasse erstellt. Diese Klasse kann aus drei hierarchischen Hauptobjekten bestehen:

  1. FlyoutItem oder TabBar Ein FlyoutItem-Objekt stellt ein oder mehrere Elemente im Flyout dar und sollte verwendet werden, wenn das Navigationsmuster für die Anwendung ein Flyout erfordert. Ein TabBar-Objekt stellt die untere Registerkartenleiste dar und sollte verwendet werden, wenn das Navigationsmuster für die Anwendung mit unteren Registerkarten beginnt und kein Flyout erfordert.
  2. Das Tab-Objekt stellt gruppierte Inhalte dar, durch die über untere Registerkarten navigiert werden kann.
  3. Das ShellContent-Objekt stellt die ContentPage-Objekte für die einzelnen Registerkarten dar.

Diese Objekte repräsentieren keine Benutzeroberfläche, sondern die Anordnung der visuellen Hierarchie einer Anwendung. Die Shell wird diese Objekte übernehmen und die Benutzeroberfläche für die Navigation der Inhalte erstellen.

Hinweis

In Shellanwendungen werden Seiten bei Bedarf als Reaktion auf die Navigation erstellt.

Weitere Informationen finden Sie unter Erstellen einer Xamarin.Forms-Shellanwendung.

Die von der Xamarin.Forms-Shell bereitgestellte Navigationsfunktion basiert auf Flyouts und Registerkarten. Die oberste Ebene der Navigation in einer Shell-Anwendung ist entweder ein Flyout oder eine untere Registerkartenleiste, je nach den Navigationsanforderungen der Anwendung. Das folgende Beispiel zeigt eine Anwendung, in der die oberste Ebene der Navigation ein Flyout ist:

Screenshot of a Shell flyout, on iOS and Android

In diesem Beispiel werden einige Flyoutelemente als Elemente in die Registerkartenleiste dupliziert. Es gibt jedoch auch Elemente, auf die nur über das Flyout zugegriffen werden kann. Die Auswahl eines Flyoutelements führt zu der unteren Registerkarte, die das ausgewählte Element darstellt und anzeigt:

Screenshot of Shell bottom tabs, on iOS and Android

Hinweis

Wenn der Flyout nicht geöffnet ist, kann die untere Registerkartenleiste als oberste Ebene der Navigation in der Anwendung betrachtet werden.

Auf jeder Registerkarte der Registerkartenleiste wird ein ContentPage-Objekt angezeigt. Wenn eine untere Registerkarte mehr als eine Seite enthält, sind die Seiten jedoch über die obere Registerkartenleiste navigierbar:

Screenshot of Shell top tabs, on iOS and Android

Auf jeder Registerkarte kann zu zusätzlichen ContentPage-Objekten navigiert werden, die als Detailseiten bezeichnet werden:

Screenshot of Shell page navigation, on iOS and Android

Die Shell verwendet eine URI-basierte Navigationsoberfläche, die Routen nutzt, um zu einer beliebigen Seite in der Anwendung zu navigieren, ohne einer festen Navigationshierarchie folgen zu müssen. Darüber hinaus bietet es auch die Möglichkeit, rückwärts zu navigieren, ohne alle Seiten des Navigationsstapels aufrufen zu müssen. Weitere Informationen finden Sie unter Navigation in der Xamarin.Forms-Shell.

Die Xamarin.Forms-Shell enthält eine integrierte Suchfunktionalität, die von der SearchHandler-Klasse bereitgestellt wird. Sie können einer Seite eine Suchfunktion hinzufügen, indem Sie ihr ein SearchHandler-Objekt mit Unterklassen hinzufügen. Dadurch wird oben auf der Seite ein Suchfeld hinzugefügt. Wenn Daten in das Suchfeld eingegeben werden, wird der Suchvorschlagsbereich mit Daten gefüllt:

Screenshot of Shell search, on iOS and Android

Wenn dann ein Ergebnis aus dem Suchvorschlagsbereich ausgewählt wird, kann benutzerdefinierte Logik ausgeführt werden, z. B. die Navigation zu einer Detailseite.

Weitere Informationen finden Sie unter Suche in der Xamarin.Forms-Shell.

Plattformunterstützung

Die Xamarin.Forms-Shell ist unter iOS und Android vollständig verfügbar, aber auf der universellen Windows-Plattform (UWP) nur teilweise. Dort ist die Shell derzeit nur als experimentelle Funktion vorhanden. Wenn Sie die Shell auf der UWP verwenden möchten, fügen Sie vor dem Aufruf von Forms.Init die folgende Codezeile in der App-Klasse Ihres UWP-Projekts hinzu:

global::Xamarin.Forms.Forms.SetFlags("Shell_UWP_Experimental");

Weitere Informationen zum Status der Shell auf der UWP finden Sie auf „github.com“ auf dem Shellprojektboard für Xamarin.Forms.