Xamarin.Forms SetHasNavigationBar causas falsas salto en PushAsync

Estoy agregando una barra de navegación usando

MainPage = new NavigationPage (new Home ());

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).

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.

  • Evitar el cierre por botón de nuevo en formularios xamarin en android
  • ¿Cómo puedo mostrar una lista anidada de elementos en Xamarin Forms?
  • Xamarin - parpadea cuando cambio la fuente de la imagen
  • Cómo personalizar el icono de flecha, el icono de la página y el título de la página en MasterDetailPage - Xamarin.Forms
  • Formularios de Xamarin Android Aplicación no obtener DeviceToken Parse SDK
  • No se pueden establecer propiedades en clases anidadas desde Xaml
  • El mensaje de la nube de Google 'Not Registered' falla y se cancela la suscripción de las mejores prácticas?
  • ¿Cómo puedo borrar la pila de navegación?
  • Línea azul claro sobre mi barra de navegación en la aplicación de Android
  • Cómo ocultar las pestañas de Android utilizando Xamarin Formulario renderizador personalizado?
  • Cómo establecer un atributo de id de android en Xamarin.Forms?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.