Поделиться через


Xamarin.Forms Быстрые отрисовщики

Традиционно большинство исходных отрисовщиков элементов управления в Android состоят из двух представлений:

  • Собственный элемент управления, например или ButtonTextView.
  • Контейнер ViewGroup , обрабатывающий некоторые задачи макета, обработки жестов и других задач.

Однако этот подход влияет на производительность, что для каждого логического элемента управления создаются два представления, что приводит к более сложному визуальному дереву, требующее больше памяти и больше обработки для отрисовки на экране.

Быстрые отрисовщики снижают затраты Xamarin.Forms на инфляцию и отрисовку элемента управления в одном представлении. Поэтому вместо создания двух представлений и добавления их в дерево представления создается только один. Это повышает производительность путем создания меньшего количества объектов, что, в свою очередь, означает менее сложное дерево представления и меньше использования памяти (что также приводит к снижению приостановки сборки мусора).

Быстрые отрисовщики доступны для следующих элементов управления в Xamarin.Forms Android:

Функционально эти быстрые отрисовщики не отличаются от устаревших отрисовщиков. Начиная с Xamarin.Forms версии 4.0 все приложения, предназначенные FormsAppCompatActivity для них, будут использовать эти быстрые отрисовщики по умолчанию. Отрисовщики для всех новых элементов управления, включая ImageButton и CollectionView, используйте быстрый подход отрисовщика.

Улучшения производительности при использовании быстрых отрисовщиков будут отличаться для каждого приложения в зависимости от сложности макета. Например, повышение производительности x2 возможно при прокрутке ListView нескольких тысяч строк данных, где ячейки в каждой строке создаются из элементов управления, использующих быстрые отрисовки, что приводит к более плавной прокрутке.

Примечание.

Пользовательские отрисовщики можно создавать для быстрых отрисовщиков, используя тот же подход, что и для устаревших отрисовщиков. Дополнительные сведения см. в статье Пользовательские отрисовщики.

обратная совместимость;

Быстрые отрисовщики можно переопределить следующими способами:

  1. Включение устаревших отрисовщиков путем добавления следующей строки кода в MainActivity класс перед вызовом Forms.Init:

    Forms.SetFlags("UseLegacyRenderers");
    
  2. Использование пользовательских отрисовщиков, предназначенных для устаревших отрисовщиков. Все существующие пользовательские отрисовщики будут продолжать функционировать с устаревшими отрисовщиками.

  3. Указание другого View.Visual, например Material, использующего различные отрисовщики. Дополнительные сведения о визуальном элементе "Материал" см. в разделе Xamarin.Forms "Визуальный элемент " Материал".