Xamarin Forms. Навигация. TabbedPage

Содержание

Слайд 2

TabbedPage

Xamarin.Forms TabbedPage состоит из списка вкладок и большой области сведений, где каждая

TabbedPage Xamarin.Forms TabbedPage состоит из списка вкладок и большой области сведений, где
вкладка загружает содержимое в область сведений.

Слайд 3

TabbedPage в iOS

В iOS список вкладок отображается в нижней части экрана, а

TabbedPage в iOS В iOS список вкладок отображается в нижней части экрана,
также в области данных сверху. У каждой вкладки есть заголовок и значок, который должен быть PNG-файлом с альфа-каналом. В книжной ориентации значки панели вкладок отображаются над заголовками вкладок. В альбомной ориентации значки и заголовки отображаются рядом. Кроме того, в зависимости от устройства и ориентации может отображаться обычная или компактная панель вкладок. При наличии более пяти вкладок появляется вкладка Дополнительно, используемая для доступа к дополнительным вкладкам.

Слайд 4

TabbedPage в Android

В Android список вкладок отображается в верхней части экрана, а

TabbedPage в Android В Android список вкладок отображается в верхней части экрана,
также в области данных ниже. У каждой вкладки есть заголовок и значок, который должен быть PNG-файлом с альфа-каналом. Но эти вкладки можно переместить в нижнюю часть экрана в зависимости от конкретной платформы. При наличии более пяти вкладок, список которых отображается внизу экрана, появляется вкладка Дополнительно, которую можно использовать для доступа к дополнительным вкладкам.

Слайд 5

Создание TabbedPage

Создать TabbedPage можно двумя способами:
Заполните TabbedPage коллекцией дочерних объектов Page, например

Создание TabbedPage Создать TabbedPage можно двумя способами: Заполните TabbedPage коллекцией дочерних объектов
ContentPage. Дополнительные сведения см. в разделе Заполнение TabbedPage коллекцией Page;
Назначьте коллекции свойство ItemsSource, а затем присвойте DataTemplate свойству ItemTemplate для возврата станицы объектов в коллекции. Дополнительные сведения см. в разделе Заполнение TabbedPage с помощью шаблона.
При обоих подходах TabbedPage отображает каждую страницу при выборе пользователем каждой из вкладок.

Слайд 6

Важно!

Рекомендуется заполнять TabbedPage только экземплярами NavigationPage и ContentPage. Это позволит обеспечить согласованность

Важно! Рекомендуется заполнять TabbedPage только экземплярами NavigationPage и ContentPage. Это позволит обеспечить
пользовательского интерфейса на всех платформах.

Слайд 7

Свойства TabbedPage

BarBackgroundColor с типом Color — цвет фона панели вкладок;
BarTextColor с типом

Свойства TabbedPage BarBackgroundColor с типом Color — цвет фона панели вкладок; BarTextColor
Color — цвет текста на панели вкладок;
SelectedTabColor с типом Color — цвет выбранной вкладки.
UnselectedTabColor с типом Color — цвет вкладки, если она не выбрана.
Все эти свойства поддерживаются объектами BindableProperty, то есть к ним можно применить стиль и их можно указывать в качестве целевых для привязки данных

Слайд 8

Предупреждение

В TabbedPage каждый объект Page создается при формировании TabbedPage.
Это может

Предупреждение В TabbedPage каждый объект Page создается при формировании TabbedPage. Это может
повлечь проблемы с произвольностью, особенно если TabbedPage является корневой страницей приложения.
Тем не менее оболочка Xamarin.Forms позволяет по запросу создавать страницы, доступ к которым осуществляется через панель вкладок, в ответ на навигацию.

Слайд 9

Заполнение TabbedPage коллекцией Page

TabbedPage можно заполнить коллекцией дочерних объектов Page, например ContentPage.

Заполнение TabbedPage коллекцией Page TabbedPage можно заполнить коллекцией дочерних объектов Page, например
Для этого необходимо добавить объекты Page в коллекцию TabbedPage.Children.

Слайд 10

Заполнение TabbedPage коллекцией Page

Эквивалентный код на C#

Заполнение TabbedPage коллекцией Page Эквивалентный код на C#

Слайд 11

Перемещение в пределах вкладки

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

Перемещение в пределах вкладки Навигацию можно осуществлять в пределах одной вкладки при
что объект ContentPage упакован в объект NavigationPage. Для этого необходимо вызвать метод PushAsync для свойства Navigation объекта ContentPage

Страница, к которой осуществляется переход, указывается в качестве аргумента метода PushAsync. В этом примере страница UpcomingAppointmentsPage принудительно отправляется в стек навигации, где становится активной

Слайд 12

Заполнение TabbedPage с помощью шаблона

TabbedPage можно заполнить страницами, назначив коллекцию данных свойству

Заполнение TabbedPage с помощью шаблона TabbedPage можно заполнить страницами, назначив коллекцию данных
ItemsSource, а также назначив DataTemplate свойству ItemTemplate, которое записывает данные в шаблон в виде объектов Page.

Слайд 15

Заполнение TabbedPage с помощью шаблона

В этом примере каждая вкладка состоит из объекта

Заполнение TabbedPage с помощью шаблона В этом примере каждая вкладка состоит из
ContentPage, который использует объекты Image и Label для вывода данных на вкладку

При выборе другой вкладки отображается объект ContentPage, представляющий вкладку