Xamarin.forms: iOS: Änderungen an der ContextAction-Sammlung führen zu einer Verlangsamung und schließlich zum Einfrieren

Erstellt am 12. März 2018  ·  3Kommentare  ·  Quelle: xamarin/Xamarin.Forms

Beschreibung

Jede Änderung der ContextActions in einer ListView oder TableView führt unter iOS zu einem exponentiell zunehmenden Einfrieren der Benutzeroberfläche.

Schritte zum Reproduzieren

  1. Erstellen Sie eine ViewCell mit Kontextaktionen
  2. Ändern Sie die Kontextaktionen wiederholt auf irgendeine Weise (normalerweise basierend auf dem ViewCell / ViewModel-Status).

Erwartetes Verhalten

Das Kontextmenü (wischen Sie unter iOS nach links, halten Sie Android gedrückt, klicken Sie mit der rechten Maustaste auf UWP usw.) sollte diese Änderung sofort widerspiegeln, ohne dass die Benutzeroberfläche langsamer wird.

Tatsächliches Verhalten

Unter iOS reagiert die Benutzeroberfläche bei jeder Änderung immer langsamer, bis sie schließlich auf unbestimmte Zeit einfriert.

Grundinformation

  • Version mit Problem: 2.5.0.280555
  • IDE: Visual Studio 2017
  • Plattform-Ziel-Frameworks:

    • iOS: 11.8.0.20

  • Geräte: Getestet auf dem iPhone 6 Plus

Video

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

Reproduktionslink

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

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

Alle 3 Kommentare

Hallo,

Ich bin auch gegen genau das gleiche Problem, ich habe mich gefragt, wann Sie dies tatsächlich aufgreifen werden

Dieses Problem scheint seit langem keine Aktivität mehr gehabt zu haben. Wir arbeiten daran, Probleme zu priorisieren und so schnell wie möglich zu lösen. Um uns dabei zu helfen, die Liste durchzuarbeiten, würden wir uns über ein Update von Ihnen freuen, um uns mitzuteilen, ob dies Sie bei der neuesten Version von Xamarin.Forms noch betrifft, da wir dies möglicherweise als Teil eines anderen verwandten oder doppelten Duplikats behoben haben Problem. Wenn wir in den nächsten 30 Tagen keine neuen Aktivitäten zu diesem Problem sehen, prüfen wir, ob dieses Problem geschlossen werden sollte. Vielen Dank!

Die Reproduktion wurde auf Xamarin.Forms v4.6.0.867 aktualisiert

Nach der ersten Änderung des Menüelements wird beim Schließen des Menüs keine Animation angezeigt. Nach ca. 7 Menüelementänderungen stürzt es mit folgender Ausnahme ab:

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 

Getestet auf iPhone 8, iOS 13.4.1. Nicht auf Android oder UWP getestet.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen