Xamarin.Forms Rychlé renderery

Většina původních rendererů ovládacích prvků v Androidu se tradičně skládá ze dvou zobrazení:

  • Nativní ovládací prvek, například a Button nebo TextView.
  • Kontejner ViewGroup , který zpracovává některé pracovní rozložení, zpracování gest a další úlohy.

Tento přístup má však implikaci výkonu v tom, že se pro každý logický ovládací prvek vytvoří dvě zobrazení, což vede ke složitějšímu vizuálnímu stromu, který vyžaduje více paměti a další zpracování vykreslení na obrazovce.

Rychlé renderery snižují inflace a vykreslovací náklady Xamarin.Forms ovládacího prvku do jednoho zobrazení. Proto se místo vytvoření dvou zobrazení a jejich přidání do stromu zobrazení vytvoří pouze jedno. To zlepšuje výkon tím, že vytváří méně objektů, což zase znamená méně složitý strom zobrazení a menší využití paměti (což také vede k menšímu počtu pozastavení uvolňování paměti).

Rychlé renderery jsou k dispozici pro následující ovládací prvky v Xamarin.Forms Androidu:

Tyto rychlé renderery se funkčně neliší od starších rendererů. Od Xamarin.Forms verze 4.0 budou všechny cílové FormsAppCompatActivity aplikace ve výchozím nastavení používat tyto rychlé vykreslovací moduly. Renderery pro všechny nové ovládací prvky, včetně ImageButton a CollectionView, používají rychlý přístup rendereru.

Vylepšení výkonu při použití rychlých rendererů se pro každou aplikaci budou lišit v závislosti na složitosti rozložení. Například zvýšení výkonu x2 je možné, když se posunete přes ListView tisíce řádků dat, kde jsou buňky v každém řádku tvořeny ovládacími prvky, které používají rychlé renderery, což vede k viditelnému plynulejšímu posouvání.

Poznámka:

Vlastní renderery je možné vytvořit pro rychlé renderery pomocí stejného přístupu, který se používá pro starší renderery. Další informace najdete v článku o vlastních renderech.

Zpětná kompatibilita

Rychlé renderery je možné přepsat pomocí následujících přístupů:

  1. Povolení starších rendererů přidáním následujícího řádku kódu do MainActivity třídy před voláním Forms.Init:

    Forms.SetFlags("UseLegacyRenderers");
    
  2. Použití vlastních rendererů, které cílí na starší renderery Všechny existující vlastní renderery budou nadále fungovat se staršími vykreslovacími moduly.

  3. Určení jiného View.Visual, například Material, který používá různé renderery. Další informace o materiálových vizuálech naleznete v tématu Xamarin.Forms Material Visual.