Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

MaterialMenuButton - on click application got crash in both Android and iOS

Abierto
#449 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
csharp
Área
mobile-dev

Línea de trabajo

Reproduce el fallo con el MaterialMenuButton mostrado en MainPage.xaml y, a continuación, inspecciona XF.Material/UI/MaterialMenuButton.cs en OnViewTouch alrededor de la línea 131 y la llamada desde OnButtonClicked. Confirma que unas Choices con elementos muestran el menú en lugar de generar la excepción indicada tanto en Android como en iOS.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

🐛 Bug Report

Expected behavior
  • It should work properly and show a popup with menu items.
Reproduction steps
  • Add MaterialMenuButton on the page and when clicking on the button it crashes the app.
MainPage.xaml
<material:MaterialMenuButton
            Grid.Row="0" Grid.Column="1"
            ButtonType="Elevated"
            Image="dots_circle"
            HorizontalOptions="End"
            HeightRequest="45"
            WidthRequest="45"
            Choices="{Binding Actions}"
            Command="{Binding ActionSelectCommand}"
            BackgroundColor="Transparent"/>
MainPageViewModel.cs
public MainPageViewModel()
{
      ObservableCollection<MaterialMenuItem> actions = new ObservableCollection<MaterialMenuItem>();
      actions.Add(new MaterialMenuItem() { Text = "Details" });
      actions.Add(new MaterialMenuItem() { Text = "Edit" });
      actions.Add(new MaterialMenuItem() { Text = "Upload Document" });
      actions.Add(new MaterialMenuItem() { Text = "Add Project" });
      Actions = new ObservableCollection<MaterialMenuItem>(actions);
}

private ObservableCollection<MaterialMenuItem> _actions { get; set; }
public ObservableCollection<MaterialMenuItem> Actions
{
     get => _actions;
     set { _actions = value; OnPropertyChanged(nameof(Actions)); }
}
Configuration
  • Visual Studio for Mac 2022 Version 17.0.1 (build 72)

Version: 1.x

  • XF.Material - 1.8.0

Platform:

  • 📱 iOS
  • 🤖 Android
  • 🏁 WPF
  • 🌎 UWP
  • 🍎 MacOS
  • 📺 tvOS
  • 🐒 Xamarin.Forms
Exception Message: Cannot show menu, property Choices is null or has no items

Stack Trace

at XF.Material.Forms.UI.MaterialMenuButton.OnViewTouch (System.Double x, System.Double y) [0x0002c] in Z:\Documents\OpenSource\XF-Material-Library\XF.Material\UI\MaterialMenuButton.cs:131 
  at XF.Material.iOS.Renderers.MaterialMenuRenderer.OnClick () [0x0001b] in Z:\Documents\OpenSource\XF-Material-Library\XF.Material\Platforms\Ios\Renderers\MaterialMenuRenderer.cs:26 
  at Xamarin.Forms.Command+<>c__DisplayClass4_0.<.ctor>b__0 (System.Object o) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Command.cs:74 
  at Xamarin.Forms.Command.Execute (System.Object parameter) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Command.cs:112 
  at XF.Material.Forms.UI.MaterialIconButton.OnButtonClicked (System.Boolean handled) [0x00017] in Z:\Documents\OpenSource\XF-Material-Library\XF.Material\UI\MaterialIconButton.xaml.cs:145 
  at XF.Material.Forms.UI.MaterialMenuButton.OnButtonClicked (System.Boolean handled) [0x00000] in Z:\Documents\OpenSource\XF-Material-Library\XF.Material\UI\MaterialMenuButton.cs:120 
  at XF.Material.Forms.UI.MaterialIconButton.<.ctor>b__13_0 () [0x00000] in Z:\Documents\OpenSource\XF-Material-Library\XF.Material\UI\MaterialIconButton.xaml.cs:47 
  at Xamarin.Forms.Command+<>c__DisplayClass4_0.<.ctor>b__0 (System.Object o) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Command.cs:74 
  at Xamarin.Forms.Command.Execute (System.Object parameter) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Command.cs:112 
  at Xamarin.Forms.ButtonElement.ElementClicked (Xamarin.Forms.VisualElement visualElement, Xamarin.Forms.Internals.IButtonElement ButtonElementManager) [0x00008] in D:\a\1\s\Xamarin.Forms.Core\ButtonElement.cs:60 
  at Xamarin.Forms.Button.SendClicked () [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Button.cs:173 
  at Xamarin.Forms.Platform.iOS.ButtonElementManager.OnButtonTouchUpInside (Xamarin.Forms.IButtonController element) [0x00009] in D:\a\1\s\Xamarin.Forms.Platform.iOS\Renderers\ButtonElementManager.cs:86 
  at Xamarin.Forms.Platform.iOS.ButtonRenderer.OnButtonTouchUpInside (System.Object sender, System.EventArgs eventArgs) [0x00000] in D:\a\1\s\Xamarin.Forms.Platform.iOS\Renderers\ButtonRenderer.cs:189 
  at UIKit.UIControlEventProxy.Activated () [0x00004] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/UIKit/UIControl.cs:38 
--- End of stack trace from previous location where exception was thrown ---

  at (wrapper managed-to-native) UIKit.UIApplication.UIApplicationMain(int,string[],intptr,intptr)
  at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x00013] in /Users/builder/azdo/_work/1/s/xamarin-macios/src/UIKit/UIApplication.cs:75 
  at solarcrm.Application.Main (System.String[] args) [0x0001b] in /Users/divyeshbhatt/Documents/sourcetree/APS/src/solarcrm.Mobile.iOS/Main.cs:20 
Lenguaje dominante
C#
Estrellas
631
Forks
150
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Baseflow/XF-Material-Library

Todos los issues de Baseflow/XF-Material-Library

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.