Xamarin.Forms Schnelle Renderer
Traditionell bestehen die meisten ursprünglichen Steuerelementrenderer unter Android aus zwei Ansichten:
- Ein natives Steuerelement, z. B. ein
Button
oderTextView
. - 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:
Aktivieren der Legacyrenderer durch Hinzufügen der folgenden Codezeile zu Ihrer
MainActivity
Klasse vor dem AufrufenForms.Init
:Forms.SetFlags("UseLegacyRenderers");
Verwenden von benutzerdefinierten Renderern, die auf die Legacyrenderer abzielen. Alle vorhandenen benutzerdefinierten Renderer funktionieren weiterhin mit den Legacyrenderern.
Geben Sie einen anderen
View.Visual
an, z. BMaterial
. , der verschiedene Renderer verwendet. Weitere Informationen zu Material Visual finden Sie unter Xamarin.Forms Material Visual.