Xamarin.Forms SetHasNavigationBar causas falsas salto en PushAsync
Estoy agregando una barra de navegación usando
MainPage = new NavigationPage (new Home ());
- Cómo ocultar las pestañas de Android utilizando Xamarin Formulario renderizador personalizado?
- React Native v Formularios Xamarin - Elegir el entorno de la aplicación multiplataforma
- Xamarin Forms Navegación de página MasterDetail causando un accidente en android , Funciona en iOS y UWP
- Uso de Google Maps en Xamarin.Forms para Android
- ParseInstallation.SaveAsync () que causa UnhandledException en formularios Xamarin Android
Entonces en mi página Home.cs
no quiero mostrar la barra de navegación, es sólo para las páginas que enlazan desde esta página que quiero mostrar la barra de navegación. Para detener la visualización de la barra de navegación en esta página, Home.cs
el siguiente código al inicio de Home.cs
NavigationPage.SetHasNavigationBar (this, false);
De aquí cuando se utiliza Navigation.Push.Async
para ir a otra página obtengo un "salto" (movimiento?) En la parte inferior de Home.cs
Es como añade en la altura de la barra de navegación en la página siguiente.
En iOS causa el salto obvio si se establece el color de fondo en Home.cs
a cualquier cosa menos blanco.
En Android parece que sólo causa este "salto" al navegar de nuevo a la página Home.cs
Este es el código que estoy usando para pasar a la siguiente página.
btn.Clicked += async (sender, e) => await Navigation.PushAsync (new TestPage ());
He intentado eliminar todos los padding.margins de las páginas, pero esto no ha ayudado. Como empecé un nuevo proyecto para probar esto no hay nada más para mí cambiar así que no puedo pensar en cualquier otro cambio que resolvería esto.
Gif a continuación: Intentó mostrar el salto en este gif
Nota: Vigile la página Home.cs
(Gris).
- Xamarin Forms Android App Crashes ejecutando Debug con VS Android emulador
- ¿Puedo diseñar la interfaz de usuario en Xamarin.Forms mediante XAML
- Xamarin Forms ListView Programatic Refresh No se detiene en Android cuando se carga la página
- Mostrar mensaje para conocer la ubicación
- ¿Cómo puedo cambiar el color de un elemento seleccionado en un ListView?
- No se pueden establecer propiedades en clases anidadas desde Xaml
- Xamarin.Forms - excepción no controlada en HttpClient SendAsync
- Cómo eliminar (Android) la barra de título de la aplicación en Xamarin.Forms?
Trabajo alternativo alrededor
Yo mi situación venía de un SpringBoard sin una barra de navegación. Así que lo que hice al ir a un ContentPage con la barra de navegación era Ocultar antes y Mostrar la barra de navegación después de la PushAsync.
NavigationPage.SetHasNavigationBar(page, false); await Navigation.PushAsync(page); NavigationPage.SetHasNavigationBar(page, true);
No estoy seguro de si esta es una solución ordenada, pero en las listas se deshace del efecto de salto. Como efecto secundario, hace que la barra de navegación se deslice desde la parte superior que se parece más a una animación bien pensada de la interfaz de usuario y luego salta contenido.
Después de un montón de mirar alrededor he encontrado esto para ser un error en Xmarin.Forms. No hay noticias sobre cuando habrá una solución o cualquier trabajo alrededor.
Por favor, mantenga un ojo en el informe de errores aquí:
https://bugzilla.xamarin.com/show_bug.cgi?id=32830
Trabajo alrededor (ish?)
Como una solución, he detenido la animación de suceder en absoluto. Agregar false
como segundo parámetro desactivará la animación. Esto no se ve muy bien, pero tal vez mejor que ver el pequeño "salto" problema.
btn.Clicked += async (sender, e) => await Navigation.PushAsync (new TestPage (), false);
Como una solución provisional, puede utilizar PushModalAsync, si esto se suma a su aplicación.
- ¿Por qué sendTextMessage requiere el permiso READ_PHONE_STATE?
- ¿Cuál sería un método para crear un contador de números en Android?