Общие сведения об оболочке Xamarin.Forms

Download Sample Скачайте пример

Оболочка Xamarin.Forms упрощает разработку мобильных приложений, предоставляя основные возможности, которые необходимы для большинства мобильных приложений, такие как:

  • единое место для описания визуальной структуры приложения;
  • общий пользовательский интерфейс навигации;
  • схема навигации на основе URI, которая позволяет переходить на любую страницу в приложении;
  • интегрированный обработчик поиска.

Кроме того, приложения оболочки получают более высокую скорость отрисовки и снижение потребления памяти.

Внимание

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

Визуальная иерархия приложения

Приложения оболочки Xamarin.Forms определяют визуальную иерархию приложения, описанную в классе, подклассом которого является класс Shell. Этот класс может состоять из трех основных иерархических объектов:

  1. FlyoutItem или TabBar. Объект FlyoutItem представляет один или несколько элементов всплывающего меню. Он требуется, если шаблон навигации требует использования всплывающего меню. Объект TabBar представляет нижнюю панель вкладок. Он требуется, если навигация в приложении начинается с нижней панели вкладок (когда всплывающее меню не требуется).
  2. Tab представляет сгруппированное содержимое с навигацией по нижним вкладкам.
  3. Объект ShellContent, представляющий объекты ContentPage для каждой вкладки.

Эти объекты не представляют собой какие-либо элементы пользовательского интерфейса, они служат лишь для организации визуальной структуры приложения. Оболочка принимает эти объекты и создает пользовательский интерфейс навигации для содержимого.

Примечание.

Страницы в приложениях оболочки создаются по запросу в ответ на навигацию.

Дополнительные сведения см. в разделе Создание приложения оболочкиXamarin.Forms.

Пользовательский интерфейс навигации, предоставляемый оболочкой Xamarin.Forms, основан на всплывающих окнах и вкладках. Верхний уровень навигации в приложении оболочки — это всплывающее меню или нижняя панель вкладок, выбор которых обусловлен требованиями навигации в приложении. В следующем примере показано приложение, в котором для верхнего уровня навигации используется всплывающее меню:

Screenshot of a Shell flyout, on iOS and Android

В этом примере некоторые всплывающие элементы дублируются как элементы панели вкладок. Однако существуют также элементы, доступ к которым возможен только из всплывающего окна. Выбор элемента приводит к отображению нижней вкладки, которая представляет выбранный элемент:

Screenshot of Shell bottom tabs, on iOS and Android

Примечание.

Если всплывающее меню отсутствует, нижняя панель вкладок считается верхним уровнем навигации в приложении.

На каждой вкладке на панели вкладок отображается ContentPage. Но если вкладка содержит более одной страницы, перемещение по страницам осуществляется с помощью верхней панели вкладок.

Screenshot of Shell top tabs, on iOS and Android

На вкладке можно перемещаться по дополнительным объектам ContentPage, называемым страницами сведений:

Screenshot of Shell page navigation, on iOS and Android

Оболочка использует улучшенные возможности навигации по интерфейсу на основе URI, позволяя переходить на любую страницу в приложении без соблюдения строгой иерархии. Кроме того, есть возможность перемещаться в обратном направлении без обязательного посещений всех страниц в стеке навигации. Дополнительные сведения см. в разделе Навигация по оболочке Xamarin.Forms.

Оболочка Xamarin.Forms включает встроенные функции поиска, предоставляемые классом SearchHandler. Чтобы добавить на страницу функцию поиска, добавьте производный объект SearchHandler. После этого в верхней части страницы появится поле поиска. Когда в такое поле поиска вводится текст, область поисковых подсказок может заполняться данными:

Screenshot of Shell search, on iOS and Android

Затем, когда результат выбирается из области вариантов, можно выполнить пользовательскую логику, например переход на страницу сведений.

Дополнительные сведения см. в разделе Поиск по оболочке Xamarin.Forms.

Поддержка платформы

Оболочка Xamarin.Forms полностью доступна в iOS и Android, но лишь частично доступна на универсальной платформе Windows (UWP). Кроме того, сейчас оболочка в UWP является экспериментальной и может использоваться только посредством добавления следующей строки кода в класс App в проекте UWP перед вызовом Forms.Init:

global::Xamarin.Forms.Forms.SetFlags("Shell_UWP_Experimental");

Дополнительные сведения о состоянии оболочки в UWP см. на странице проектов оболочки Xamarin.Forms на сайте github.com.