Representadores rápidos de Xamarin.Forms

Tradicionalmente, la mayoría de los representadores de controles originales en Android se componen de dos vistas:

  • Un control nativo, como Button o TextView.
  • Un elemento ViewGroup contenedor que controla parte del trabajo de diseño, el control de gestos y otras tareas.

Pero este enfoque tiene una implicación de rendimiento: se crean dos vistas para cada control lógico, lo que da como resultado un árbol visual más complejo que necesita más memoria y más procesamiento para representarse en pantalla.

Los representadores rápidos reducen la inflación y los costos de representación de un control Xamarin.Forms en una sola vista. Por tanto, en lugar de crear dos vistas y agregarlas al árbol de vistas, solo se crea una. Esto mejora el rendimiento porque se crean menos objetos, lo que a su vez genera un árbol de vistas menos complejo y menos uso de memoria (lo que genera menos pausas de la recolección de elementos no utilizados).

Los representadores rápidos están disponibles para los siguientes controles en Xamarin.Forms en Android:

Funcionalmente, estos representadores rápidos no son diferentes de los representadores heredados. A partir de Xamarin.Forms 4.0, todas las aplicaciones destinadas a FormsAppCompatActivity usan representadores rápidos de manera predeterminada. Los representadores para todos los controles nuevos, incluidos ImageButton y CollectionView, usan el enfoque de representador rápido.

Las mejoras de rendimiento al usar representadores rápidos variarán para cada aplicación, en función de la complejidad del diseño. Por ejemplo, las mejoras de rendimiento de x2 son posibles al desplazarse por un elemento ListView con miles de filas de datos, donde las celdas de cada fila se componen de controles que usan representadores rápidos, lo que da como resultado un desplazamiento visiblemente más suave.

Nota:

Se pueden crear representadores personalizados para representadores rápidos mediante el mismo enfoque que se usa para los representadores heredados. Para obtener más información, consulte Custom Renderers (Representadores personalizados).

Compatibilidad con versiones anteriores

Los representadores rápidos se pueden invalidar con los enfoques siguientes:

  1. Para habilitar los representadores heredados, agregue la siguiente línea de código a la clase MainActivity antes de llamar a Forms.Init:

    Forms.SetFlags("UseLegacyRenderers");
    
  2. Mediante representadores personalizados que tienen como destino los representadores heredados. Los representadores personalizados existentes seguirán funcionando con los representadores heredados.

  3. Mediante la especificación de otro elemento View.Visual, como Material, que usa otros representadores. Para más información sobre el objeto visual Material, vea Objeto visual Material de Xamarin.Forms.