Xamarin.Forms Schnelle Renderer

Traditionell bestehen die meisten ursprünglichen Steuerelementrenderer unter Android aus zwei Ansichten:

  • Ein natives Steuerelement, z. B. ein Button oder TextView.
  • Ein Container ViewGroup , der einige der Layoutarbeiten, gestenverarbeitung und andere Aufgaben übernimmt.

Dieser Ansatz hat jedoch eine Auswirkung auf die Leistung, da zwei Ansichten für jedes logische Steuerelement erstellt werden, was zu einer komplexeren visuellen Struktur führt, die mehr Arbeitsspeicher und mehr Verarbeitung zum Rendern auf dem Bildschirm erfordert.

Schnelle Renderer reduzieren die Inflations- und Renderingkosten eines Xamarin.Forms Steuerelements in einer einzigen Ansicht. Anstatt daher zwei Ansichten zu erstellen und sie der Ansichtsstruktur hinzuzufügen, wird nur eine erstellt. Dies verbessert die Leistung, indem weniger Objekte erstellt werden, was wiederum eine weniger komplexe Ansichtsstruktur und weniger Arbeitsspeicherauslastung bedeutet (was auch zu weniger Garbage Collection-Pausen führt).

Schnelle Renderer sind für die folgenden Steuerelemente unter Xamarin.Forms Android verfügbar:

Funktionell unterscheiden sich diese schnellen Renderer nicht von den älteren Renderern. Ab Xamarin.Forms 4.0 verwenden alle Anwendungen, die als Ziel verwendet FormsAppCompatActivity werden, standardmäßig diese schnellen Renderer. Renderer für alle neuen Steuerelemente, einschließlich ImageButton und CollectionView, verwenden den Ansatz des schnellen Renderers.

Leistungsverbesserungen bei der Verwendung von schnellen Renderern variieren je nach Der Komplexität des Layouts für jede Anwendung. Beispielsweise sind Leistungsverbesserungen von x2 möglich, wenn ein Bildlauf durch Tausende ListView von Datenzeilen erfolgt, wobei die Zellen in jeder Zeile aus Steuerelementen bestehen, die schnelle Renderer verwenden, was zu einem sichtbar reibungsloseren Bildlauf führt.

Hinweis

Benutzerdefinierte Renderer können für schnelle Renderer mit demselben Ansatz erstellt werden, der für die älteren Renderer verwendet wird. Weitere Informationen finden Sie unter Custom Renderers (Benutzerdefinierte Renderer).

Abwärtskompatibilität

Schnelle Renderer können mit den folgenden Ansätzen überschrieben werden:

  1. Aktivieren der Legacyrenderer durch Hinzufügen der folgenden Codezeile zu Ihrer MainActivity Klasse vor dem Aufrufen Forms.Init:

    Forms.SetFlags("UseLegacyRenderers");
    
  2. Verwenden von benutzerdefinierten Renderern, die auf die Legacyrenderer abzielen. Alle vorhandenen benutzerdefinierten Renderer funktionieren weiterhin mit den Legacyrenderern.

  3. Geben Sie einen anderen View.Visualan, z. B Material. , der verschiedene Renderer verwendet. Weitere Informationen zu Material Visual finden Sie unter Xamarin.Forms Material Visual.