Xamarin.Forms: alineación incorrecta del texto del botón después del clic (Android)

Tengo un problema con Xamarin.Forms (versión 1.2.2) en Android (Nexus 5). La alineación de Button.Text menudo no se centra después de realizar un clic.

En un proyecto corto, me di cuenta, que la actualización de la interfaz de usuario provoca el problema.

 public class App { public static Page GetMainPage() { var label = new Label { Text = "label", }; var buttonBad = new Button { Text = "buttonBad", Command = new Command(() => label.Text += "1"), }; var buttonGood = new Button { Text = "buttonGood", }; return new ContentPage { Content = new StackLayout { Children = { buttonBad, buttonGood, label, } } }; } } 

Un clic en "buttonBad" (actualizar el label.Text ) hace que la alineación de texto de este botón no se centró más. Un clic en "buttonGood" no causa el problema.

¿Hay una buena solución para resolver este problema?

Esta solución parece ser demasiado complicada: http://forums.xamarin.com/discussion/20608/fix-for-button-layout-bug-on-android

Editar: Un programatically editar de la interfaz de usuario también casos el error. Cambiar la label.Text en un método asíncrono después de una espera corta lleva el "buttonGood" para alinear su texto equivocado después de un clic.

Edit2: He creado un proyecto de ejemplo / prueba en GitHub: https://github.com/perpetual-mobile/ButtonTextAlignmentBug.git La alineación es correcta, cuando el StackLayout es reemplazado por un AbsolutLayout, pero necesito StackLayout para funcionar bien.

Ok, después de horas de tratar con este insecto tonto, lo resolví mediante la implementación de un renderizador personalizado y sobreescribir ChildDrawableStateChanged :

 public override void ChildDrawableStateChanged(Android.Views.View child) { base.ChildDrawableStateChanged(child); Control.Text = Control.Text; } 

Lo mismo ocurre cuando ocultar una etiqueta, cambiar su contenido y mostrarlo de nuevo. ¿Alguna sugerencia?

  • Xamarin.Forms untappable ListView (eliminar el efecto de rizo de selección)
  • Obtener la actividad actual de Application.Context - MonoAndroid
  • Xamarin implementación de Android no utiliza el código más reciente?
  • Xamarin.Auth obtener disallowed_useragent error
  • Formularios de Xamarin Android Aplicación no obtener DeviceToken Parse SDK
  • ¿Cómo configurar el mapa en el proyecto pcl de xamarin.forms?
  • Línea azul claro sobre mi barra de navegación en la aplicación de Android
  • ¿Cómo puedo cambiar el color de un elemento seleccionado en un ListView?
  • RelativeLayout en el cálculo del ancho de StackLayout
  • Xamarin Forms Android Keyboard mueve toda la página hacia arriba
  • Problemas de recursos de Android después de actualizar a Xamarin Forms 2.0
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.