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


Два экрана в Xamarin.Forms

Устройства с двумя экранами, такие как Microsoft Surface Duo, упрощают реализацию новых возможностей работы для пользователей в приложениях. Xamarin.Forms включает в себя классы TwoPaneView и DualScreenInfo, позволяющие разрабатывать приложения для устройств с двумя экранами.

Начало работы

Чтобы добавить возможности работы с двумя экранами в приложение Xamarin.Forms, выполните указанные ниже действия.

  1. Откройте диалоговое окно Диспетчер пакетов NuGet для вашего решения.

  2. Откройте вкладку Обзор и найдите Xamarin.Forms.DualScreen.

  3. Установите пакет Xamarin.Forms.DualScreen в решении.

  4. Добавьте следующий вызов метода инициализации в класс MainActivity проекта Android в событии OnCreate:

    Xamarin.Forms.DualScreen.DualScreenService.Init(this);
    

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

  5. Измените атрибут 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.FormsTwoPaneView класс, вдохновленный элементом управления UWP с тем же именем, является кроссплатформенным макетом, оптимизированным для двухэкранных устройств.
  • Вспомогательный класс DualScreenInfo. Класс DualScreenInfo позволяет определить, в какой области отображается ваше представление, сколько места оно занимает, в каком положении находится устройство, каков угол сгиба и т. д.
  • Триггеры для двух экранов. Пространство имен Xamarin.Forms.DualScreen включает два триггера состояния, которые активируют изменение VisualState при изменении режима просмотра в присоединенном макете или окне.

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