Вы вообще знаете, что такое скаффолд, или не читали нашу статью о виджете скаффолда. Прочитайте его, а теперь давайте углубимся в то, как использовать виджет CupertinoTabScaffold во Flutter.

По сути, подытоживая для вас, каркас — это то, что дает структуру макета материального дизайна вашего приложения. Каркас обрабатывает содержимое между панелью вкладок внизу или за ней и самой панелью вкладок.

Виджет CupertinoTabScaffold похож на тот, который дает вам структуру для вашего макета страницы приложение для iOS, сосредоточив внимание на вашем дизайне для iOS. Скаффолд Купертино упорядочивает содержимое между панелью навигации или за ней, при этом панель навигации находится вверху.

Ниже представлен конструктор CupertinoTabScaffold.

КупертиноВкладкаЛеса(

{Ключ? ключ,

требуется купертиноTabBar tabBar,

требуется IndexedWidgetBuilder tabBuilder,

КупертиноВкладкаКонтроллер? контроллер,

Цвет? фоновый цвет,

bool resizeToAvoidBottomInset = true,

Нить? идентификатор восстановления}

)

Должен быть IndexedWidgetBuilder tabBuilder и TabBar CupertinoTabBar.

Начальный индекс вкладок может быть предоставлен CupertinoTabController? контроллер, а также может управлять последующими изменениями вкладок. Скаффолд создаст свой собственный CupertinoTabController и будет управлять им внутренне, если контроллер не указан. В противном случае владелец контроллера несет ответственность за вызов на утилизацию после использования.

Данный tabBuilder используется для создания содержимого вкладок в активном индексе вкладок. Количество страниц, которые может создать tabBuilder, должно соответствовать количеству объектов tabBar. Анимации неактивных вкладок будут отключены и перемещены за пределы сцены.

Поддерживается, но не рекомендуется добавлять/удалять вкладки или изменять последовательность вкладок. В дополнение к тому, что CupertinoTabScaffold может привести к потере статуса некоторых вкладок, это противоречит рекомендациям по человеческому интерфейсу iOS.

При поддержке вкладок с параллельным состоянием навигации и историей используйте CupertinoTabView в качестве корневого виджета каждой вкладки. Пересборка CupertinoTabView с отдельным экземпляром WidgetBuilder в CupertinoTabView необходима, так как каждый из них содержит навигатор. Стек навигации CupertinoTabView не будет воссоздан, и конструктор не изменит пользовательский интерфейс. После создания CupertinoTabView вы можете обновить его содержимое, вызвав перестроение из одного из его потомков, а не из его прародителя.

Пример

Сборка виджета (контекст BuildContext) {

возврат CupertinoTabScaffold(

tabBar: КупертиноTabBar(

элементы: константа [

НижнийNavigationBarItem(

значок: значок (CupertinoIcons.home),

этикетка: «Дом»,

),

НижнийNavigationBarItem(

значок: значок (CupertinoIcons.search_circle_fill),

метка: «Исследовать»,

),

],

),

tabBuilder: (контекст BuildContext, индекс int) {

возврат CupertinoTabView(

строитель: (контекст BuildContext) {

возврат CupertinoPageScaffold(

navigationBar: КупертиноNavigationBar(

середина: Текст('Страница 1 вкладки $index'),

),

ребенок: Центр(

ребенок: КупертиноКнопка(

дочерний элемент: const Text('Следующая страница'),

onPressed: () {

Navigator.of(контекст).push(

КупертиноСтраницаМаршрут(

строитель: (контекст BuildContext) {

возврат CupertinoPageScaffold(

navigationBar: КупертиноNavigationBar(

середина: Текст('Страница 2 вкладки $index'),

),

ребенок: Центр(

ребенок: КупертиноКнопка(

дочерний элемент: const Text('Назад'),

onPressed: () {

Navigator.of(context).pop();

},

),

),

);

},

),

);

},

),

),

);

},

);

},

);

}

Выход

Заключение

В этой статье мы рассмотрели, что такое виджет CupertinoTabScaffold во Flutter, и как его реализовать. Я надеюсь, что вы понимаете и наслаждаетесь этой статьей. Посетите агентство Flutter, чтобы узнать больше о подобных вещах. Дайте нам знать, если у вас есть какие-либо идеи и вы хотите воплотить их в жизнь, а затем свяжитесь с компанией-разработчиком приложений Flutter, например Flutter Agency.

Часто задаваемые вопросы (FAQ)

1. Что такое WidgetBuilder в разработке Flutter?

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

2. Как CupertinoTabView будет работать при разработке приложений?

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

3. Укажите IndexedWidgetBuilder во Flutter

IndexedWidgetBuilder — это typedef, который определяет функцию с BuildContext и int и возвращает виджет. Подпись для процедуры создаст виджет для данного индекса.