Xamarin.Forms Renderizadores rápidos

Tradicionalmente, a maioria dos renderizadores de controle originais no Android é composta por duas visualizações:

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

No entanto, essa abordagem tem uma implicação de desempenho em que 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.

Os renderizadores rápidos reduzem a inflação e os custos de renderização de um Xamarin.Forms controle em uma única exibição. Portanto, em vez de criar duas visualizações e adicioná-las à árvore de visualização, apenas uma é criada. 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 na coleta de lixo).

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

Funcionalmente, esses renderizadores rápidos não são diferentes dos renderizadores legados. A partir da Xamarin.Forms versão 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 um ListView contendo 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 uma rolagem visivelmente mais suave.

Observação

Os 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

Os 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. Especificando um , como Material, que usa renderizadores diferentesView.Visual. Para obter mais informações sobre o Material Visual, consulte Xamarin.Forms Material Visual.