Articles in this section
Category / Section

How to Animate the Content in .NET MAUI NavigationDrawer?

6 mins read

This article guides you on how to animate the content when switching between pages in the .NET MAUI NavigationDrawer.

By using built-in MAUI animation methods such as FadeTo, TranslateTo, and ScaleTo, you can create smooth transitions for content when navigating between different pages.

Here’s a code snippet showcasing how to implement slide animation with the TranslateTo method for the navigation drawer content:

XAML

<navigationdrawer:SfNavigationDrawer x:Name="navigationDrawer">
    <navigationdrawer:SfNavigationDrawer.DrawerSettings>
        <!-- DrawerSettings Configuration -->
        <navigationdrawer:DrawerSettings >
            <!-- Drawer Header View -->
            <!-- ... -->
            <!-- Drawer Content View -->
            <navigationdrawer:DrawerSettings.DrawerContentView>
                <!-- ScrollView with VerticalStackLayout for menu items -->
                <ScrollView>
                    <VerticalStackLayout Spacing="10" Padding="5,0">
                        <Border StrokeThickness="0" x:Name="inboxEffectsBorder">
                            <Border.StrokeShape>
                                <RoundRectangle CornerRadius="30"/>
                            </Border.StrokeShape>
                            <core:SfEffectsView x:Name="inboxEffects" RippleBackground="#ab56e3">
                                <core:SfEffectsView.GestureRecognizers>
                                    <TapGestureRecognizer 
                                    Tapped="OnInboxTapGestureRecognizerTapped"/>
                                </core:SfEffectsView.GestureRecognizers>
                                <Grid Padding="20,5,10,5" HeightRequest="48">
                                    <!-- ... -->
                                </Grid>
                            </core:SfEffectsView>
                        </Border>
                        <!-- ... -->                        
                    </VerticalStackLayout>
                </ScrollView>
            </navigationdrawer:DrawerSettings.DrawerContentView>
        </navigationdrawer:DrawerSettings>
    </navigationdrawer:SfNavigationDrawer.DrawerSettings>
</navigationdrawer:SfNavigationDrawer>

C#

public partial class MainPage : ContentPage
{
    private Inbox inbox;
    public MainPage()
    {
        InitializeComponent();
        inbox = new Inbox();
        Initialize();           
    }  

    private async void AnimateContentChange(View newContent)
    {
        // Slide out current content to the left
        if (navigationDrawer.ContentView != null)
        {
            // Slide out over 250ms
            await navigationDrawer.ContentView.TranslateTo(-this.Width, 0, 250);  
        }
    
        // Set the new content
        navigationDrawer.ContentView = newContent;
    
        // Slide in the new content from the right
        navigationDrawer.ContentView.TranslationX = this.Width;
        
        // Slide in over 250ms
        await navigationDrawer.ContentView.TranslateTo(0, 0, 250);  
    }
    
    private void Initialize()
    {
        AnimateContentChange(new Inbox().Content);
        // Additional initialization logic
    }

    private void OnInboxTapGestureRecognizerTapped(object? sender, TappedEventArgs e)
    {
        AnimateContentChange(inbox.Content);
    }

    // Additional tap handlers for other menu items
}
  • Slide Out Current Content: The existing content slides out to the left using the TranslateTo method.
  • Set New Content: The ContentView of the navigationDrawer is updated with the new page content.
  • Slide In New Content: The new content slides in from the right using the TranslateTo method.

This approach provides a visually appealing transition between pages.

To learn more about .NET MAUI Animations, please refer to the below blog:
Learn Performing Animation in .NET MAUI

Output

Animation_Demo.gif

Download the complete sample in GitHub

Conclusion

Hope you enjoyed learning about how to animate the content in .NET MAUI NavigationDrawer.
You can refer to our .NET MAUI NavigationDrawer feature tour page to know about its other groundbreaking feature representations and Documentation, and how to quickly get started for configuration specifications. You can also explore our .NET MAUI NavigationDrawer example to understand how to create and manipulate data.

For current customers, you can check out our components from the License and Downloads page. If you are new to Syncfusion, you can try our 30-day free trial to check out our other controls.
If you have any queries or require clarifications, please let us know in the comments section below. You can also contact us through our support forums, Direct-Trac or feedback portal. We are always happy to assist you!

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please  to leave a comment
Access denied
Access denied