Два экрана в Xamarin.Forms
Устройства с двумя экранами, такие как Microsoft Surface Duo, упрощают реализацию новых возможностей работы для пользователей в приложениях. Xamarin.Forms включает в себя классы TwoPaneView
и DualScreenInfo
, позволяющие разрабатывать приложения для устройств с двумя экранами.
Начало работы
Чтобы добавить возможности работы с двумя экранами в приложение Xamarin.Forms, выполните указанные ниже действия.
Откройте диалоговое окно Диспетчер пакетов NuGet для вашего решения.
Откройте вкладку Обзор и найдите
Xamarin.Forms.DualScreen
.Установите пакет
Xamarin.Forms.DualScreen
в решении.Добавьте следующий вызов метода инициализации в класс
MainActivity
проекта Android в событииOnCreate
:Xamarin.Forms.DualScreen.DualScreenService.Init(this);
Этот метод необходим для того, чтобы приложение могло обнаруживать изменения в состоянии приложения, например, разбиение на два экрана.
Измените атрибут
Activity
в классеMainActivity
проекта Android так, чтобы он включал все следующие параметрыConfigurationChanges
:ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.UiMode
Эти значения необходимы для более надежного получения сообщений об изменениях конфигурации и состояния разбиения. По умолчанию в проекты Xamarin.Forms добавляются только два из них, поэтому обязательно добавьте остальные для надежной поддержки двух экранов.
Устранение неполадок
Если класс DualScreenInfo
или макет TwoPaneView
работают не так, как нужно, тщательно проверьте инструкции по настройке на этой странице. Распространенными причинами ошибок являются отсутствие или неправильная настройка метода Init
или значений атрибутов ConfigurationChanges
.
Дополнительные рекомендации и эталонную реализацию см. в образцах Xamarin.Forms с поддержкой двух экранов.
Следующие шаги
После добавления NuGet добавьте в приложение функции работы с двумя экранами, следуя приведенным ниже рекомендациям.
- Шаблоны проектирования для двух экранов. Наше руководство по шаблонам поможет вам подобрать оптимальный вариант использования интерфейса приложения на устройстве с двумя экранами.
- Макет TwoPaneView — Xamarin.Forms
TwoPaneView
класс, вдохновленный элементом управления UWP с тем же именем, является кроссплатформенным макетом, оптимизированным для двухэкранных устройств. - Вспомогательный класс DualScreenInfo. Класс
DualScreenInfo
позволяет определить, в какой области отображается ваше представление, сколько места оно занимает, в каком положении находится устройство, каков угол сгиба и т. д. - Триггеры для двух экранов. Пространство имен
Xamarin.Forms.DualScreen
включает два триггера состояния, которые активируют изменениеVisualState
при изменении режима просмотра в присоединенном макете или окне.
Дополнительные сведения см. в документации по поддержке двух экранов для разработчиков.