Implémenter la navigation par onglets à l’aide de .NET MAUI Shell

Effectué

La navigation par onglets est un modèle de navigation où une bande d’onglets (ligne de contrôles pouvant être déplacés) est affichée en haut ou en bas de l’écran de façon permanente. La navigation par onglets offre à l’utilisateur un mécanisme qui lui permet de sélectionner des pages dans une application multipage.

Dans cette unité, vous apprenez à créer une application qui implémente la navigation par onglets.

Qu’est-ce que la navigation par onglets ?

Dans une application qui utilise la navigation par onglets, chaque onglet représente une section ou une page spécifique de l’application. Les utilisateurs sélectionnent les onglets de la bande pour parcourir le contenu de l’application. À titre d'exemple, l’illustration suivante présente l’utilisation de la navigation par onglets dans l’application Horloge d’iOS. Les icônes mises en surbrillance au bas de la page vous permettent de basculer entre différentes vues. Ces icônes correspondent à des onglets, et les vues sont des pages avec onglets :

Screenshot of the i O S Clock app showing the bottom tab bar containing various time-related tabs: World Clock, Alarm, Bedtime, Stopwatch, and Timer.

La bande d’onglets étant toujours visible, la navigation par onglets permet aux utilisateurs de basculer rapidement d’un contenu à l’autre de l’application. La navigation par onglets est idéale quand une application comprend plusieurs sections qu’un utilisateur est susceptible d’utiliser fréquemment. Les applications d’horloge en sont un excellent exemple. Les sections Horloge, Alarme et Chronomètre sont susceptibles d’être fréquemment utilisées.

Sur les appareils mobiles, la bande d’onglets dispose généralement d’un espace limité et peut uniquement afficher un nombre fixe d’onglets, en fonction de la taille et de l’orientation de l’appareil. Nous vous recommandons de n’utiliser que trois ou quatre onglets. Si vous incluez plus d’onglets, vous n’êtes pas certain d’avoir suffisamment de place pour tous les afficher sur l’appareil. Les systèmes d’exploitation pris en charge par .NET MAUI autorisent une zone de débordement. Cette zone offre plus d’espace pour accéder aux onglets qui ne tiennent pas à l’écran. Cependant, la navigation vers ces onglets de dépassement nécessite des étapes supplémentaires de la part de l’utilisateur. Ces sections sont moins facilement découvrables.

Si vous avez besoin de plus de quatre onglets, utilisez un autre modèle de navigation, comme la navigation par élément de menu volant. En outre, la navigation par onglets n’est pas la meilleure option si vos données forment naturellement une hiérarchie maître/détail. Dans ce cas, optez pour navigation sur pile.

Navigation par onglets dans une application .NET MAUI

Vous utilisez l’objet TabBar pour implémenter la navigation par onglets dans une application shell MAUI .NET. L’objet TabBar affiche un ensemble d’onglets et change automatiquement le contenu affiché lorsque l’utilisateur sélectionne un onglet. L’illustration suivante montre les zones de l’interface utilisateur.

Illustration showing an example Tabbed Page with a content area and a bottom tab bar containing three children pages: Globe, Compass, and Map.

Pour utiliser des onglets dans une application .NET MAUI Shell, créez une instance de la classe TabBar en tant qu’enfant de la classe Shell. Puis ajoutez des objets Tab à la TabBar. Dans l’objet Tab, un objet ShellContent doit être défini sur un objet ContentPage.

Créer un TabbedPage

Vous pouvez créer une instance TabBar en tant qu’enfant de la classe Shell. Selon vos besoins, ajoutez des objets Tab en tant qu’enfants à la TabBar. Dans l’objet Tab, un objet ShellContent doit être défini sur un objet ContentPage.

<Shell xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
       xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
       xmlns:views="clr-namespace:Xaminals.Views"
       x:Class="Xaminals.AppShell">
    <TabBar>
       <Tab Title="Moon Phase"
            Icon="moon.png">
           <ShellContent ContentTemplate="{DataTemplate local:MoonPhasePage}" />
       </Tab>
       <Tab Title="Sunrise"
            Icon="sun.png">
           <ShellContent ContentTemplate="{DataTemplate local:SunrisePage}" />
       </Tab>
    </TabBar>
</Shell>

Onglets dans un menu volant

Un élément de menu volant peut ouvrir une page contenant une barre d’onglets qui affiche un ou plusieurs onglets.

Pour implémenter cette conception, ajoutez un élément <ShellContent> dans le <FlyoutItem> pour chaque onglet que vous souhaitez afficher.

Définissez Title et Icon sur l’élément <ShellContent> pour déterminer le nom et l’icône de l’onglet.

<FlyoutItem Title="Astronomy" Icon="moon.png">
    <ShellContent Title="Moon Phase" Icon="moon.png"
        ContentTemplate="{DataTemplate local:MoonPhasePage}"/>

    <ShellContent Title="Sunrise" Icon="sun.png"
        ContentTemplate="{DataTemplate local:SunrisePage}"/>
</FlyoutItem>

<FlyoutItem Title="About" Icon="question.png">
    <ShellContent
        ContentTemplate="{DataTemplate local:AboutPage}"/>
</FlyoutItem>
1.

Dans quel cas la navigation par onglets est-elle la mieux adaptée à une application ?