Aunque parezca sencillo, me parecio un poco confusa esta clase. Creo que debe ser un paso a paso para los que estamos empezando en esto podamos enenderlo mejor.
Introducción a .NET MAUI
Fundamentos de Interfaces Gráficas con .NET MAUI y XAML
Introducción a .NET MAUI: Desarrollo Multiplataforma con C#
Historia y Evolución de Samarín hasta .NET Power
Estructura de Proyecto Único en .NET MAUI para Múltiples Plataformas
Instalando Visual Studio 2022
Instalación de Visual Studio 2022 en Windows
Instalación de Visual Studio para Mac paso a paso
Conociendo el XAML y su estructura
Estructura Básica de XAML para Interfaces de Usuario
Tipos de PEYES en .NET MAUI: Uso y Funcionalidad
Pages
Creación de una App Básica en .NET MAUI usando Visual Studio
Flex Layout Page y Navigation Page en Visual Studio
Creación de Tab Page en .NET MAUI con Visual Studio
Layouts
Layouts y Frames en .NET MAUI: Mejora el Diseño de tu App
Diseño de Interfaces con Absolute Layout en Visual Studio
Diseño de Interfaces con Grid en Visual Studio
Desarrollo de Interfaces con Grid en Visual Studio: Práctica Guiada
Propiedades de FlexLayout en Diseño Web
Implementación de FlexLayout en UI: Descomposición y Codificación
Estilos
Optimización de Código con Estilos en XAML
Estilos y Recursos en .NET MAUI para Optimizar Código
Replicación de UI en .NET MAUI: Layouts y Estilos Avanzados
Reto de UI con .NET MAUI
Desarrollo de Interfaces de Usuario con Driven y Visual Studio
Construcción de Interfaces con .NET MAUI para Android e iOS
Resumen del Curso .NET BAUI: Estructura y Componentes XAML
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Dominar la estructura y uso del Flex Layout Page y el Navigation Page es fundamental para construir aplicaciones móviles eficientes y organizadas. Estas herramientas de desarrollo en Visual Studio permiten gestionar eficazmente menús interactivos y navegación jerárquica, aspectos clave para mejorar la experiencia del usuario en tu aplicación.
El Flex Layout Page ofrece una solución práctica para aplicaciones que requieren menús laterales dinámicos. Este diseño presenta dos áreas principales:
En Visual Studio, se implementa cambiando el Content Page por la etiqueta específica:
<flayout.page>
<flexlayout.page.flayout>
<!-- Inserta aquí tu menú de opciones -->
</flexlayout.page.flayout>
<flexlayoutpage.dj>
<!-- Inserta detalles adicionales aquí -->
</flexlayoutpage.dj>
</flayout.page>
Podemos visualizar claramente ambos componentes gracias a las referencias entre páginas alojadas en diferentes carpetas mediante alias simplificados.
El Navigation Page simplifica el proceso de desplazamiento dentro de una aplicación mediante navegación jerárquica sencilla basada en una estructura de pila, siguiendo la lógica Last In, First Out (última en entrar, primera en salir). Esto es especialmente útil para:
Su implementación básica, junto al Flex Layout Page, se realiza agregando la etiqueta Navigation Page dentro del contenido principal.
<NavigationPage>
<x:Arguments>
<local:MainPage />
</x:Arguments>
</NavigationPage>
Para obtener lo mejor de ambas estructuras, combínalas en tu proyecto como se mostró en el ejemplo, colocando Navigation Page dentro del detalle en Flex Layout. Esto permite que cualquier página de contenido pueda integrar navegación fluida.
Para definir claramente las opciones del menú lateral, se utiliza Collection View que enlaza información desde una clase personalizada. Este enfoque facilita presentar elementos estructurados con ícono y descripción claramente desplegados.
Cada elemento dentro del Collection View necesitará información predefinida desde una clase con atributos específicos como título, ícono y tipo destino (target type).
Las rutas y referencias entre páginas en tu proyecto se simplifican con alias definidos previamente, evitando repetición excesiva y facilitando modificaciones futuras. Por ejemplo, el uso del alias "views" facilita acceder rápidamente a la ruta específica de tu proyecto.
Debes crear una clase pública sencilla con tres atributos importantes:
Aquí un ejemplo simplificado de su estructura básica:
public class MenuItem {
public string Titulo { get; set; }
public string Icono { get; set; }
public Type TargetType { get; set; }
}
Pon a prueba estas funcionalidades y personalízalas adaptándolas a las necesidades específicas de tu proyecto. Además, si realizas algún ajuste o tienes consultas específicas, compártelas en comentarios para enriquecer el aprendizaje y resolver posibles dudas.
Aportes 21
Preguntas 6
Aunque parezca sencillo, me parecio un poco confusa esta clase. Creo que debe ser un paso a paso para los que estamos empezando en esto podamos enenderlo mejor.
Aquí hay un poco más de información sobre XML Namespaces para .NET MAUI:
https://learn.microsoft.com/en-us/dotnet/maui/xaml/namespaces/
Tuve el siguiente problema con el flyout, cree algunas pantallas para navegar y no funcionaba. Falto controlar el evento de selectionCanged para que cambie de pantalla, para que funcione si quieren navegar entre pantallas por el menu. Agreguen en FlyoutSamplePage.xaml.cs
namespace PagePlatziSample.Views.Pages.FlyoutSample;
public partial class FlyoutSamplePage : FlyoutPage
{
public FlyoutSamplePage()
{
InitializeComponent();
flyoutPage.collectionView.SelectionChanged += OnSelectionChanged;
}
void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
var item = e.CurrentSelection.FirstOrDefault() as FlyoutPageItem;
if (item != null)
{
Detail = new NavigationPage((Page)Activator.CreateInstance(item.TargetType));
if (!((IFlyoutPageController)this).ShouldShowSplitMode)
IsPresented = false;
}
}
}
Aunque no fue fácil seguir el ritmo porque este ejemplo que explica ya tenía varios cambios realizados como las carpetas que agregaron, y otras par de cosas que vi , y aunque me tuve que repetir como 5 veces el video y revisar documentación, lo logré , coloque un icono tipo hamburguesa para abrir el menú y coloque varios iconos.
Les dejo un link donde se explica como agregar un archivo ttf de fuentes y un helper al proyecto para su implementación:
Custom Fonts & Material Design Icons in .NET MAUI
Además les dejo como logré su utilización en el Flyout ya que es distinta al ejemplo que se muestra agregándolo al MainPage:
<CollectionView.ItemsSource>
<x:Array Type="{x:Type Views:FlyoutPageItem}">
<Views:FlyoutPageItem Title="Home"
Icon="{x:Static Helpers:MaterialDesignIconFonts.Home}"
TargetType="{x:Type local:MainPage}" />
</x:Array>
</CollectionView.ItemsSource>
<CollectionView.ItemTemplate>
<DataTemplate>
<HorizontalStackLayout Margin="20">
<Image>
<Image.Source>
<FontImageSource
FontFamily="MaterialDesignIcons"
Glyph="{Binding Icon}"
Color="Black"/>
</Image.Source>
</Image>
<Label Margin="20,0"
Text="{Binding Title}"
FontSize="20"
VerticalOptions="Center"/>
</HorizontalStackLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
La etiqueta de Image debe tener apertura y cierre para anidarle subetiquetas, y es la de FontImageSource la que permite agregar como un Glyph en caracter que representa al ícono. Estoy a la orden por cualquier duda!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?