Articles in this section

How to implement a .NET MAUI Radial Menu in a ListView?

This guide demonstrates how to implement a .NET MAUI Radial Menu within a ListView and open it by tapping on the ListView item. The following steps outline the process:

  1. In the XAML section, define a StackLayout containing ListView and a Radial Menu control.
  2. The ListView is bound to the BookInfo data source and handles the ItemTapped event by calling the listView_ItemTapped event handler.
  3. In the code-behind, event handlers for ListView item tapping and RadialMenu closing are implemented. The ListView item tapping event adjusts the RadialMenu position based on the tapped item’s position and opens it. The closing event for the RadialMenu hides it upon closing.

XAML

 <StackLayout>
            <syncfusion:SfListView x:Name="listView"  
                                   ItemsSource="{Binding BookInfo}"  
                                   ItemTapped="listView_ItemTapped" 
                                   ItemSize="250">

     <syncfusion:SfListView.ItemTemplate>
         <DataTemplate>
             <Grid x:Name="main">
                 <Grid.RowDefinitions>
                     <RowDefinition Height="0.4*" />
                     <RowDefinition Height="0.6*" />
                 </Grid.RowDefinitions>
                 <Label Text="{Binding BookName}" FontAttributes="Bold" TextColor="Teal" FontSize="Small" />
                 <Label Grid.Row="1" Text="{Binding BookDescription}" TextColor="Teal" FontSize="15"/>
             </Grid>
         </DataTemplate>
     </syncfusion:SfListView.ItemTemplate>
 </syncfusion:SfListView>


 <radialMenu:SfRadialMenu IsOpen="False" 
                          IsVisible="False"
                          Closing="radialMenu_Closing"  
                          HeightRequest="250" 
                          WidthRequest="220"
                          x:Name="radialMenu" 
                          CenterButtonText=""
                          CenterButtonFontFamily="MauiMaterialAssets" >
     <radialMenu:SfRadialMenu.Items>
             <radialMenu:SfRadialMenuItem Text="" FontFamily="MauiMaterialAssets">
             <radialMenu:SfRadialMenuItem.Items>
                     <radialMenu:SfRadialMenuItem  Text="" 
                     FontFamily="MauiMaterialAssets" />
                     <radialMenu:SfRadialMenuItem  Text="" 
                     FontFamily="MauiMaterialAssets" />
                     <radialMenu:SfRadialMenuItem  Text="" 
                     FontFamily="MauiMaterialAssets" />
                     <radialMenu:SfRadialMenuItem  Text="" 
                     FontFamily="MauiMaterialAssets" />
             </radialMenu:SfRadialMenuItem.Items>
         </radialMenu:SfRadialMenuItem>
             <radialMenu:SfRadialMenuItem Text="" 
             FontFamily="MauiMaterialAssets">
             <radialMenu:SfRadialMenuItem.Items>
                     <radialMenu:SfRadialMenuItem  Text="" 
                     FontFamily="MauiMaterialAssets" />
                     <radialMenu:SfRadialMenuItem  Text="" 
                     FontFamily="MauiMaterialAssets" />
                     <radialMenu:SfRadialMenuItem  Text="" 
                     FontFamily="MauiMaterialAssets" />
                     <radialMenu:SfRadialMenuItem  Text="" 
                     FontFamily="MauiMaterialAssets" />
             </radialMenu:SfRadialMenuItem.Items>
         </radialMenu:SfRadialMenuItem>
             <radialMenu:SfRadialMenuItem  Text="" 
             FontFamily="MauiMaterialAssets">
             <radialMenu:SfRadialMenuItem.Items>
                     <radialMenu:SfRadialMenuItem  Text="" 
                     FontFamily="MauiMaterialAssets" />
                     <radialMenu:SfRadialMenuItem  Text="" 
                     FontFamily="MauiMaterialAssets" />
                     <radialMenu:SfRadialMenuItem  Text="" 
                     FontFamily="MauiMaterialAssets" />
             </radialMenu:SfRadialMenuItem.Items>
         </radialMenu:SfRadialMenuItem>
             <radialMenu:SfRadialMenuItem  Text="" FontFamily="MauiMaterialAssets">
             <radialMenu:SfRadialMenuItem.Items>
                     <radialMenu:SfRadialMenuItem  FontSize="16" Text="" FontFamily="MauiMaterialAssets" />
                     <radialMenu:SfRadialMenuItem  FontSize="18" Text="" FontFamily="MauiMaterialAssets" />
                     <radialMenu:SfRadialMenuItem  FontSize="20" Text="" FontFamily="MauiMaterialAssets" />
             </radialMenu:SfRadialMenuItem.Items>
         </radialMenu:SfRadialMenuItem>
             <radialMenu:SfRadialMenuItem Text="" FontFamily="MauiMaterialAssets">
             <radialMenu:SfRadialMenuItem.Items>
                     <radialMenu:SfRadialMenuItem  Text="" FontFamily="MauiMaterialAssets" />
                     <radialMenu:SfRadialMenuItem  Text="" FontFamily="MauiMaterialAssets" />
                     <radialMenu:SfRadialMenuItem  Text="" FontFamily="MauiMaterialAssets" />
             </radialMenu:SfRadialMenuItem.Items>
         </radialMenu:SfRadialMenuItem>
     </radialMenu:SfRadialMenu.Items>
 </radialMenu:SfRadialMenu>
 </StackLayout>

C#

  private void listView_ItemTapped(object sender, Syncfusion.Maui.ListView.ItemTappedEventArgs e) 
  {
     radialMenu.TranslationX = e.Position.X - (radialMenu.Width);
     radialMenu.TranslationY = e.Position.Y - (radialMenu.Height);
     radialMenu.IsOpen = true;
     radialMenu.IsVisible = true;
  }

  private void radialMenu_Closing(object sender, Syncfusion.Maui.RadialMenu.ClosingEventArgs e) 
  {
     radialMenu.IsVisible = false;
  }

Output

AndroidEmulator-pixel_5_-_api_34_55542024-04-1016-25-01-ezgif.com-video-to-gif-converter.gif

Download the complete sample from GitHub.

Conclusion
I hope you enjoyed learning how to implement a .NET MAUI Radial Menu in a ListView.

You can refer to our .NET MAUI Radial Menu feature tour page to learn about its other groundbreaking feature representations. You can explore our .NET MAUI Radial Menu documentation to understand how to present and manipulate data.

For current customers, check out our .NET MAUI components on the License and Downloads page. If you are new to Syncfusion®, try our 30-day free trial to explore our .NET MAUI Radial Menu and other .NET MAUI components.

Please let us know in the comments section if you have any queries or require clarification. You can also contact us through our support forums, Direct-Trac, or feedback portal, or the 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)
Access denied
Access denied