Xamarin.Forms Renderer veloci

Tradizionalmente, la maggior parte dei renderer di controllo originali in Android è costituita da due visualizzazioni:

  • Controllo nativo, ad esempio o ButtonTextView.
  • Contenitore ViewGroup che gestisce alcune attività del layout, gestione dei movimenti e altre attività.

Tuttavia, questo approccio implica le prestazioni in quanto vengono create due visualizzazioni per ogni controllo logico, il che comporta un albero visivo più complesso che richiede più memoria e più elaborazione per il rendering sullo schermo.

I renderer veloci riducono l'inflazione e il rendering dei costi di un Xamarin.Forms controllo in un'unica visualizzazione. Pertanto, invece di creare due visualizzazioni e aggiungerle all'albero di visualizzazione, ne viene creata una sola. Ciò migliora le prestazioni creando un minor numero di oggetti, che a sua volta significa un albero di visualizzazione meno complesso e meno utilizzo della memoria (con un minor numero di pause di Garbage Collection).

I renderer veloci sono disponibili per i controlli seguenti in Xamarin.Forms in Android:

A livello funzionale, questi renderer veloci non sono diversi dai renderer legacy. A partire dalla Xamarin.Forms versione 4.0, tutte le applicazioni FormsAppCompatActivity destinate a useranno questi renderer veloci per impostazione predefinita. I renderer per tutti i nuovi controlli, inclusi ImageButton e CollectionView, usano l'approccio rapido del renderer.

I miglioramenti delle prestazioni quando si usano renderer veloci variano per ogni applicazione, a seconda della complessità del layout. Ad esempio, i miglioramenti delle prestazioni di x2 sono possibili quando si scorre un ListView oggetto contenente migliaia di righe di dati, in cui le celle di ogni riga sono costituite da controlli che usano renderer veloci, con un scorrimento visibile e uniforme.

Nota

È possibile creare renderer personalizzati per renderer veloci usando lo stesso approccio usato per i renderer legacy. Per altre informazioni, vedere Custom Renderers (Renderer personalizzati).

Compatibilità con le versioni precedenti

I renderer veloci possono essere sottoposti a override con gli approcci seguenti:

  1. Abilitazione dei renderer legacy aggiungendo la riga di codice seguente alla MainActivity classe prima di chiamare Forms.Init:

    Forms.SetFlags("UseLegacyRenderers");
    
  2. Uso di renderer personalizzati destinati ai renderer legacy. Tutti i renderer personalizzati esistenti continueranno a funzionare con i renderer legacy.

  3. Specifica di un oggetto diverso View.Visual, ad esempio Material, che usa renderer diversi. Per altre informazioni sull'oggetto visivo materiale, vedere Xamarin.Forms Oggetto visivo materiale.