Xamarin.Forms Schnelle Renderer
Traditionell bestehen die meisten ursprünglichen Steuerelementrenderer unter Android aus zwei Ansichten:
- Ein systemeigenes Steuerelement, z. B. ein
Button
oderTextView
. - Ein Container
ViewGroup
, der einige der Layoutaufgaben, die Gestenbehandlung und andere Aufgaben behandelt.
Dieser Ansatz hat jedoch eine Leistungsimplementierung, in der zwei Ansichten für jedes logische Steuerelement erstellt werden, was zu einer komplexeren visuellen Struktur führt, die mehr Arbeitsspeicher erfordert, und mehr Verarbeitung zum Rendern auf dem Bildschirm.
Schnelle Renderer reduzieren die Inflation und die Renderingkosten eines Xamarin.Forms Steuerelements in einer einzigen Ansicht. Daher wird nur eine Ansicht erstellt, anstatt zwei Ansichten zu erstellen und sie der Ansichtsstruktur hinzuzufügen. Dies verbessert die Leistung, indem weniger Objekte erstellt werden, was wiederum eine weniger komplexe Ansichtsstruktur und weniger Arbeitsspeichernutzung 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 auf diese schnellen Renderer abzielen FormsAppCompatActivity
, standardmäßig. Renderer für alle neuen Steuerelemente, einschließlich ImageButton
und CollectionView
, verwenden den schnellen Rendereransatz.
Leistungsverbesserungen bei der Verwendung von schnellen Renderern variieren je nach Komplexität des Layouts für jede Anwendung. Beispielsweise sind Leistungsverbesserungen von x2 möglich, wenn ein Bildlauf durch tausende ListView
Von Datenzeilen enthält, 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 erstellt werden, die denselben Ansatz wie für die Legacyrenderer verwenden. 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 älteren Renderern.
Angeben eines anderen
View.Visual
, z. BMaterial
. von unterschiedlichen Renderern. Weitere Informationen zu Material Visual finden Sie unter Xamarin.Forms Material Visual.