Xamarin.Forms Быстрые отрисовщики
Традиционно большинство исходных отрисовщиков элементов управления в Android состоят из двух представлений:
- Собственный элемент управления, например или
Button
TextView
. - Контейнер
ViewGroup
, обрабатывающий некоторые задачи макета, обработки жестов и других задач.
Однако этот подход влияет на производительность, что для каждого логического элемента управления создаются два представления, что приводит к более сложному визуальному дереву, требующее больше памяти и больше обработки для отрисовки на экране.
Быстрые отрисовщики снижают затраты Xamarin.Forms на инфляцию и отрисовку элемента управления в одном представлении. Поэтому вместо создания двух представлений и добавления их в дерево представления создается только один. Это повышает производительность путем создания меньшего количества объектов, что, в свою очередь, означает менее сложное дерево представления и меньше использования памяти (что также приводит к снижению приостановки сборки мусора).
Быстрые отрисовщики доступны для следующих элементов управления в Xamarin.Forms Android:
Функционально эти быстрые отрисовщики не отличаются от устаревших отрисовщиков. Начиная с Xamarin.Forms версии 4.0 все приложения, предназначенные FormsAppCompatActivity
для них, будут использовать эти быстрые отрисовщики по умолчанию. Отрисовщики для всех новых элементов управления, включая ImageButton
и CollectionView
, используйте быстрый подход отрисовщика.
Улучшения производительности при использовании быстрых отрисовщиков будут отличаться для каждого приложения в зависимости от сложности макета. Например, повышение производительности x2 возможно при прокрутке ListView
нескольких тысяч строк данных, где ячейки в каждой строке создаются из элементов управления, использующих быстрые отрисовки, что приводит к более плавной прокрутке.
Примечание.
Пользовательские отрисовщики можно создавать для быстрых отрисовщиков, используя тот же подход, что и для устаревших отрисовщиков. Дополнительные сведения см. в статье Пользовательские отрисовщики.
обратная совместимость;
Быстрые отрисовщики можно переопределить следующими способами:
Включение устаревших отрисовщиков путем добавления следующей строки кода в
MainActivity
класс перед вызовомForms.Init
:Forms.SetFlags("UseLegacyRenderers");
Использование пользовательских отрисовщиков, предназначенных для устаревших отрисовщиков. Все существующие пользовательские отрисовщики будут продолжать функционировать с устаревшими отрисовщиками.
Указание другого
View.Visual
, напримерMaterial
, использующего различные отрисовщики. Дополнительные сведения о визуальном элементе "Материал" см. в разделе Xamarin.Forms "Визуальный элемент " Материал".