Tabbladnavigatie implementeren met .NET MAUI Shell

Voltooid

Tabnavigatie is een navigatiepatroon waarbij een tabstrook (een rij aanraakbare besturingselementen) permanent boven of onder aan het scherm wordt weergegeven. Tabnavigatie biedt een mechanisme voor een gebruiker om te selecteren tussen pagina's in een app met meerdere pagina's.

In deze les leert u hoe u een app maakt die tabnavigatie implementeert.

Wat is tabnavigatie?

In een app die gebruikmaakt van tabnavigatie, vertegenwoordigt elk tabblad een specifieke sectie of pagina van de app. Gebruikers selecteren tabbladen in de tabstrook om te schakelen tussen inhoud in de toepassing. In de volgende afbeelding ziet u bijvoorbeeld het gebruik van tabnavigatie in de iOS Clock-app. Met de pictogrammen die aan de basis van de pagina zijn gemarkeerd, kunt u schakelen tussen verschillende weergaven. Deze pictogrammen komen overeen met tabbladen en de weergaven zijn pagina's met tabbladen:

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.

Omdat de tabstrook altijd zichtbaar is, kunnen gebruikers met tabnavigatie snel schakelen tussen inhoud in een toepassing. Tabnavigatie is ideaal wanneer een toepassing meerdere secties heeft die een gebruiker waarschijnlijk vaak gebruikt. Kloktoepassingen zijn een uitstekend voorbeeld. De secties klok, alarm en stopwatch worden waarschijnlijk vaak gebruikt.

Op mobiele apparaten heeft de tabstrook doorgaans een beperkte hoeveelheid ruimte en kan alleen een vast aantal tabbladen worden weergegeven, afhankelijk van de grootte en afdrukstand van het apparaat. De aanbeveling is om slechts drie tot vier tabbladen te gebruiken. Als u meer tabbladen opneemt, hebt u niet gegarandeerd voldoende ruimte om alle tabbladen op alle apparaten weer te geven. De besturingssystemen die door .NETLOAD worden ondersteund, maken een overloopgebied mogelijk. Dit gebied biedt meer ruimte voor toegang tot tabbladen die niet op het scherm passen. Voor het navigeren naar deze overlooptabbladen zijn echter extra stappen van de gebruiker vereist. Deze secties zijn minder detecteerbaar.

Als u meer dan vier tabbladen nodig hebt, kunt u overwegen een ander navigatiepatroon te gebruiken, zoals navigatie van flyout-items. Bovendien is tabnavigatie niet de beste optie als uw gegevens een natuurlijke, hoofddetailhiërarchie vormen. In dergelijke gevallen moet u overwegen om stacknavigatie te overwegen.

Tabnavigatie in een .NET MAUI-app

U gebruikt het TabBar object om tabnavigatie te implementeren in een .NET MAUI Shell-app. Het TabBar object geeft een set tabbladen weer en schakelt automatisch de weergegeven inhoud wanneer de gebruiker een tabblad selecteert. In de volgende afbeelding ziet u de gebieden van de gebruikersinterface.

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

Als u tabs wilt gebruiken in een .NET MAUI Shell-toepassing, maakt u een exemplaar van de TabBar klasse als onderliggend element van de Shell klasse. Voeg vervolgens objecten toe Tab aan de TabBar. Binnen het Tab object moet een ShellContent object worden ingesteld op een ContentPage object.

Een TabbedPage maken

U kunt een TabBar exemplaar maken als een onderliggend element van de Shell klasse. Voeg Tab objecten toe als onderliggende elementen aan de TabBar benodigde items. Binnen het Tab object moet een ShellContent object worden ingesteld op een ContentPage object.

<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>

Tabbladen in een flyoutmenu

Een flyout-item kan een pagina openen met een tabbalk waarop een of meer tabbladen worden weergegeven.

Als u dit ontwerp wilt implementeren, voegt u een <ShellContent> item toe aan het <FlyoutItem> tabblad dat u wilt weergeven.

Stel de Title titel Icon en het pictogram van het tabblad in om de titel en het <ShellContent> pictogram van het tabblad te bepalen.

<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.

Wanneer is tabbladnavigatie een goede keuze voor een app?