Xamarin.forms: iOS: los cambios en la colección de ContextAction provocan una ralentización y una eventual congelación

Creado en 12 mar. 2018  ·  3Comentarios  ·  Fuente: xamarin/Xamarin.Forms

Descripción

Cada cambio en ContextActions en un ListView o TableView causa una congelación de la interfaz de usuario que aumenta exponencialmente en iOS.

Pasos para reproducir

  1. Crea una ViewCell con acciones de contexto
  2. Cambie repetidamente las acciones de contexto de alguna manera (generalmente según el estado de ViewCell / ViewModel)

Comportamiento esperado

El menú contextual (deslice hacia la izquierda en iOS, mantenga presionado en Android, haga clic con el botón derecho en UWP, etc.) debería reflejar este cambio inmediatamente sin que la interfaz de usuario se ralentice.

Comportamiento real

En iOS, con cada cambio, la interfaz de usuario se vuelve cada vez más lenta para responder hasta que finalmente se congela indefinidamente.

Información básica

  • Versión con problema: 2.5.0.280555
  • IDE: Visual Studio 2017
  • Marcos de destino de la plataforma:

    • iOS: 11.8.0.20

  • Dispositivos: probado en iPhone 6 Plus

Video

https://github.com/sonic1015/bugRepo/files/1835039/2018-03-12.T16-17-07.zip

Enlace de reproducción

https://github.com/sonic1015/bugRepo/archive/1.zip

listview performance 4 help wanted high iOS 🍎 bug up-for-grabs

Todos 3 comentarios

Hola,

También me estoy enfrentando a este mismo problema exacto, me preguntaba cuándo realmente lo recogerá

Este problema no parece haber tenido actividad en mucho tiempo. Estamos trabajando para priorizar los problemas y resolverlos lo más rápido posible. Para ayudarnos a completar la lista, agradeceríamos una actualización de su parte para informarnos si esto todavía le afecta en la última versión de Xamarin.Forms, ya que es posible que hayamos resuelto esto como parte de otro relacionado o duplicado asunto. Si no vemos ninguna actividad nueva sobre este problema en los próximos 30 días, evaluaremos si este problema debe cerrarse. ¡Gracias!

Se actualizó la reproducción a Xamarin.Forms v4.6.0.867

Después del primer cambio de elemento del menú, no hay animación al cerrar el menú. Después de aproximadamente 7 cambios en los elementos del menú, se bloquea con la siguiente excepción:

System.NullReferenceException: Object reference not set to an instance of an object
  at Xamarin.Forms.Platform.iOS.ContextActionsCell.OnCellPropertyChanged (System.Object sender, System.ComponentModel.PropertyChangedEventArgs e) [0x00012] in D:\a\1\s\Xamarin.Forms.Platform.iOS\ContextActionCell.cs:475 
  at (wrapper delegate-invoke) <Module>.invoke_void_object_PropertyChangedEventArgs(object,System.ComponentModel.PropertyChangedEventArgs)
  at Xamarin.Forms.BindableObject.OnPropertyChanged (System.String propertyName) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\BindableObject.cs:229 
  at Xamarin.Forms.Element.OnPropertyChanged (System.String propertyName) [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Element.cs:353 
  at Xamarin.Forms.Cell.OnContextActionsChanged (System.Object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) [0x0002d] in D:\a\1\s\Xamarin.Forms.Core\Cells\Cell.cs:227 
  at (wrapper delegate-invoke) <Module>.invoke_void_object_NotifyCollectionChangedEventArgs(object,System.Collections.Specialized.NotifyCollectionChangedEventArgs)
  at System.Collections.ObjectModel.ObservableCollection`1[T].OnCollectionChanged (System.Collections.Specialized.NotifyCollectionChangedEventArgs e) [0x00018] in <866ebc6712e548788bfc4c085907ae80>:0 
  at System.Collections.ObjectModel.ObservableCollection`1[T].OnCollectionChanged (System.Collections.Specialized.NotifyCollectionChangedAction action, System.Object item, System.Int32 index) [0x00009] in <866ebc6712e548788bfc4c085907ae80>:0 
  at System.Collections.ObjectModel.ObservableCollection`1[T].RemoveItem (System.Int32 index) [0x00021] in <866ebc6712e548788bfc4c085907ae80>:0 
  at System.Collections.ObjectModel.Collection`1[T].Remove (T item) [0x00027] in <624bcc4ce53347508a7b8fa821d78da4>:0 
  at bugRepo.CustomViewCell+<>c__DisplayClass0_0.<.ctor>b__1 (System.Object sender, System.EventArgs args) [0x00002] in C:\Users\eballantyne\Downloads\bugRepo-1\bugRepo-1\bugRepo\bugRepo\CustomViewCell.xaml.cs:40 

Probado en iPhone 8, iOS 13.4.1. No lo he probado en Android o UWP.

¿Fue útil esta página
0 / 5 - 0 calificaciones