Superposición blanca en WebView después de la actualización a AppCompat con Xamarin Forms

En mi aplicación Xamarin Forms tengo un WebView utilizado como un formulario al insertar una div con contentEditable establecido en true. Todo funcionó bien hasta la actualización de estilos AppCompat .

Ahora, una extraña superposición blanca (cuadrado blanco) aparece cuando el usuario intenta escribir dentro del WebView , que desaparece cuando se WebView el teclado. Para encontrar la causa raíz del problema, he creado un proyecto de ejemplo con una sola página que contiene sólo un diseño de pila vertical que contiene otro diseño de pila y la vista web. Lo que he notado es que este problema ocurre si la altura del diseño de la pila interna es suficiente para que la vista web sea cubierta por el teclado cuando aparezca. En este caso, la vista en la Web se mueve hacia arriba y aparece esta extraña superposición. La webview es completamente funcional, y es posible escribir texto, aunque esté oculto por este cuadrado blanco, que desaparece cuando se desactiva el teclado.

Este es un ejemplo de una página simple que se puede utilizar para probar el problema. Los botones se han añadido sólo para aumentar y disminuir el tamaño del diseño para mostrar el problema más fácilmente

 public class MainPage : ContentPage { const string ContentEdit = @"<div contentEditable=""true"" style =""min-height: 200px"">"; const string ContentEditEnd = "</div>"; const string EmptyDocument = @"<body>" + ContentEdit + ContentEditEnd + @"</body>"; WebView webView; public MainPage() { InitializePage(); } void InitializePage() { webView = new WebView() { VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, }; var button1 = new Button { HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, Text = "-", }; var button2 = new Button { HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, Text = "+", }; var tallLayout = new StackLayout() { Orientation = StackOrientation.Horizontal, HeightRequest = 200, BackgroundColor = Color.Lime, Children = { button1, button2, }, }; button1.Clicked += (sender, e) => tallLayout.HeightRequest = tallLayout.Height - 20; button2.Clicked += (sender, e) => tallLayout.HeightRequest = tallLayout.Height + 20; var layout = new StackLayout { Orientation = StackOrientation.Vertical, VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.FillAndExpand, Children = { tallLayout, webView }, }; Content = layout; } protected override void OnAppearing() { InitializeEmptyContent(); } public void InitializeEmptyContent() { var htmlSource = new HtmlWebViewSource(); htmlSource.Html = EmptyDocument; webView.Source = htmlSource; } } 

He intentado reproducir este sencillo diseño también con Android nativo, pero parece que no tengo ningún error similar. ¿Es este un error de Xamarin Forms o estoy haciendo algo mal?

Al final el problema fue reconocido como un error Xamarin.

  • No se puede depurar la aplicación en Android Phone
  • Xamarin.Forms acceder a los controles escritos en el código de marcado
  • Resource.Designer.cs: "Recurso ... no contiene una definición para ..."
  • Xamarin con Visual Studio: pantalla en blanco al depurar
  • Xamarin Forms ListView Programatic Refresh No se detiene en Android cuando se carga la página
  • El mensaje de la nube de Google 'Not Registered' falla y se cancela la suscripción de las mejores prácticas?
  • Xamarin Forms PCL HttpClient lanzando una excepción no controlada en Android
  • Mostrar mensaje para conocer la ubicación
  • FormsAppCompatActivity y MasterDetailPage: no hay barra de herramientas
  • Cómo ocultar las pestañas de Android utilizando Xamarin Formulario renderizador personalizado?
  • Color del borde para el editor en Xamarin.Forms
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.