Einführung in die Xamarin.Forms-Shell
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:
FlyoutItem
oderTabBar
EinFlyoutItem
-Objekt stellt ein oder mehrere Elemente im Flyout dar und sollte verwendet werden, wenn das Navigationsmuster für die Anwendung ein Flyout erfordert. EinTabBar
-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.- Das
Tab
-Objekt stellt gruppierte Inhalte dar, durch die über untere Registerkarten navigiert werden kann. - Das
ShellContent
-Objekt stellt dieContentPage
-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.
Benutzeroberfläche für die Navigation
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:
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:
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:
Auf jeder Registerkarte kann zu zusätzlichen ContentPage
-Objekten navigiert werden, die als Detailseiten bezeichnet werden:
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.
Suche
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:
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.