Xamarin.Forms Renderizadores Rápidos

Tradicionalmente, a maioria dos renderizadores de controle originais no Android é composta por dois modos de exibição:

  • Um controle nativo, como um Button ou TextView.
  • Um contêiner ViewGroup que manipula parte do trabalho de layout, manipulação de gestos e outras tarefas.

No entanto, essa abordagem tem uma implicação de desempenho, pois duas exibições são criadas para cada controle lógico, o que resulta em uma árvore visual mais complexa que requer mais memória e mais processamento para renderizar na tela.

Renderizadores rápidos reduzem a inflação e renderizam os custos de um Xamarin.Forms controle em uma única exibição. Portanto, em vez de criar dois modos de exibição e adicioná-los à árvore de exibição, apenas um é criado. Isso melhora o desempenho criando menos objetos, o que, por sua vez, significa uma árvore de exibição menos complexa e menos uso de memória (o que também resulta em menos pausas de coleta de lixo).

Renderizadores rápidos estão disponíveis para os seguintes controles em no Xamarin.Forms Android:

Funcionalmente, esses renderizadores rápidos não são diferentes dos renderizadores herdados. A partir da Xamarin.Forms 4.0, todos os aplicativos direcionados FormsAppCompatActivity usarão esses renderizadores rápidos por padrão. Os renderizadores para todos os novos controles, incluindo ImageButton e CollectionView, usam a abordagem de renderizador rápido.

As melhorias de desempenho ao usar renderizadores rápidos variam para cada aplicativo, dependendo da complexidade do layout. Por exemplo, melhorias de desempenho de x2 são possíveis ao rolar por uma ListView que contém milhares de linhas de dados, em que as células em cada linha são feitas de controles que usam renderizadores rápidos, o que resulta em rolagem visivelmente mais suave.

Observação

Renderizadores personalizados podem ser criados para renderizadores rápidos usando a mesma abordagem usada para os renderizadores herdados. Para obter mais informações, veja Renderizadores personalizados.

Compatibilidade com versões anteriores

Renderizadores rápidos podem ser substituídos com as seguintes abordagens:

  1. Habilitando os renderizadores herdados adicionando a seguinte linha de código à sua MainActivity classe antes de chamar Forms.Init:

    Forms.SetFlags("UseLegacyRenderers");
    
  2. Usando renderizadores personalizados direcionados aos renderizadores herdados. Todos os renderizadores personalizados existentes continuarão a funcionar com os renderizadores herdados.

  3. Especificar um diferente View.Visual, como Material, que usa renderizadores diferentes. Para obter mais informações sobre o Material Visual, consulte Xamarin.Forms Material Visual.