Xamarin.Forms SetHasNavigationBar causas falsas salto en PushAsync
Estoy agregando una barra de navegación usando
MainPage = new NavigationPage (new Home ());
- ¿Cómo detectar Golpe izquierdo y Golpe derecho para Stacklayout en Xamarin.Forms?
- Error de compilación: Error con el proyecto de Android en Xamarin.Forms
- Convertir automáticamente el código entre Xamarin iOS y Xamarin Android
- Cómo reducir el tamaño de código de usuario para una aplicación Xamarin Forms en Visual Studio 2015?
- Cómo eliminar (Android) la barra de título de la aplicación en Xamarin.Forms?
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).
- AlarmManager sólo funciona en un futuro próximo
- Superposición blanca en WebView después de la actualización a AppCompat con Xamarin Forms
- Cómo configurar la orientación ContentPage en Xamarin.Forms
- Xamarin.Forms Switch Control no es visible en Android antes de seleccionar un control de entrada
- ¿Cómo configurar el mapa en el proyecto pcl de xamarin.forms?
- Cómo utilizar controles Xamarin.Form y controles nativos En la misma página
- Xamarin.Forms implementa AndHud y BTProgressHud
- Xamarin Forms Android Keyboard mueve toda la página hacia arriba
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?