Xamarin.Forms Szybkie programy renderowania
Tradycyjnie większość oryginalnych modułów renderujących kontrolki w systemie Android składa się z dwóch widoków:
- Kontrolka natywna, taka jak lub
Button
TextView
. - Kontener
ViewGroup
, który obsługuje niektóre zadania układu, obsługę gestów i inne zadania.
Jednak takie podejście ma wpływ na wydajność w tym, że dwa widoki są tworzone dla każdej kontrolki logicznej, co powoduje bardziej złożone drzewo wizualne wymagające większej ilości pamięci i więcej przetwarzania do renderowania na ekranie.
Szybkie programy renderacyjne zmniejszają inflację i koszty renderowania kontrolki Xamarin.Forms w jednym widoku. Dlatego zamiast tworzyć dwa widoki i dodawać je do drzewa widoków, tworzony jest tylko jeden. Poprawia to wydajność dzięki tworzeniu mniejszej liczby obiektów, co z kolei oznacza mniej złożone drzewo widoków i mniejsze użycie pamięci (co powoduje również mniej wstrzymania odzyskiwania pamięci).
Szybkie programy renderowania są dostępne dla następujących kontrolek w Xamarin.Forms systemie Android:
Funkcjonalnie te szybkie programy renderowania nie różnią się od starszych modułów renderujących. Od Xamarin.Forms wersji 4.0 wszystkie docelowe aplikacje będą domyślnie używać tych szybkich FormsAppCompatActivity
programów renderujących. Programy renderujące dla wszystkich nowych kontrolek, w tym ImageButton
i CollectionView
, używają szybkiego podejścia do renderowania.
Ulepszenia wydajności podczas korzystania z szybkich modułów renderujących będą się różnić w zależności od złożoności układu. Na przykład ulepszenia wydajności x2 są możliwe podczas przewijania zawierającego ListView
tysiące wierszy danych, gdzie komórki w każdym wierszu są tworzone z kontrolek korzystających z szybkich modułów renderujących, co skutkuje wyraźnie wygładzonym przewijaniem.
Uwaga
Niestandardowe programy renderujące można tworzyć dla szybkich rendererów przy użyciu tego samego podejścia, co w przypadku starszych modułów renderujących. Aby uzyskać więcej informacji, zobacz Niestandardowe programy renderujące.
Zgodność z poprzednimi wersjami
Szybkie programy renderowania można zastąpić następującymi metodami:
Włączenie starszych modułów renderujących przez dodanie następującego wiersza kodu do
MainActivity
klasy przed wywołaniem metodyForms.Init
:Forms.SetFlags("UseLegacyRenderers");
Używanie niestandardowych modułów renderujących przeznaczonych dla starszych modułów renderujących. Wszystkie istniejące niestandardowe programy renderowania będą nadal działać ze starszymi modułami renderujących.
Określanie innego
View.Visual
elementu , takiego jakMaterial
, które używa różnych modułów renderujących. Aby uzyskać więcej informacji na temat wizualizacji Material Visual, zobacz Xamarin.Forms Material Visual.