Вернитесь на главный экран во Flutter. ⇐ Android
Вернитесь на главный экран во Flutter.
Главный экран На главном экране, когда я нажимаю на обложку альбома, я нажимаю на обложку альбома, когда нажимаю значок «Домой» в нижней части навигации. Я хочу, чтобы она вернулась на домашнюю страницу, но она не возвращается на домашнюю страницу.< /п> import 'package:flutter/material.dart'; импортировать «пакет: Spotify/screens/HOME/home.dart»; импортировать «экраны/search.dart»; Map navigatorKeys = { const Home(): GlobalKey(), const Search(): GlobalKey(), }; Виджет selectView(int index) { вернуть просмотры[индекс]; } Представления списка = [Главная(), Поиск()]; класс Tabbar расширяет StatefulWidget { @переопределить State createState() => _TabbarState(); } класс _TabbarState расширяет State{ интервал _selectedTab = 0; @переопределить Сборка виджета (контекст BuildContext) { вернуть эшафот( BottomNavigationBar: BottomNavigationBar( высота: двойная бесконечность, тип: BottomNavigationBarType.fixed, BackgroundColor: const Color (0xff0d1117), selectedItemColor: Цвет (0xfff5f5f5), unselectedItemColor: Цвет (0xff333333), текущийИндекс: _selectedTab, onTap: (индекс) { print([]) setState(() { _selectedTab = индекс; }); }, Размер значка: 30, элементы: константа [ BottomNavigationBarItem( значок: Значок (Icons.home), этикетка: «Дом», ), BottomNavigationBarItem( значок: Значок (Icons.search_outlined), ярлык: «Поиск», ), BottomNavigationBarItem( значок: Значок (Icons.library_music), ярлык: «Ваша библиотека», ), BottomNavigationBarItem( значок: Значок(Icons.person), ярлык: "Профиль", ), ], ), тело: Стек( дети: [ _buildOffstageNavigator(0), _buildOffstageNavigator(1), ], ) // _buildOffstageNavigator(2), // _buildOffstageNavigator(3), //Куча( // дети: [ // renderView( // 0, // константный дом(), // ), // renderView( // 1, // константный поиск(), // ), // renderView( // 2, // Просмотр библиотеки(), // ), // renderView( // 3, //ПросмотрПрофиля(), // ), // ],; ); } Виджет _buildOffstageNavigator(int tabItem) { вернуть за кулисами( за кулисами: _selectedTab != tabItem, ребенок: Навигатор( ключ: navigatorKeys[selectView(_selectedTab)], InitialRoute: "/", // это имя маршрута onGenerateRoute: (routeSettings) { вернуть MaterialPageRoute( строитель: (контекст) => selectView(_selectedTab)); }, ), ); } } попробовал popuntill, но это не сработало, а также pushAndRemoveuntill привел к исчезновению нижней панели навигации.
Главный экран На главном экране, когда я нажимаю на обложку альбома, я нажимаю на обложку альбома, когда нажимаю значок «Домой» в нижней части навигации. Я хочу, чтобы она вернулась на домашнюю страницу, но она не возвращается на домашнюю страницу.< /п> import 'package:flutter/material.dart'; импортировать «пакет: Spotify/screens/HOME/home.dart»; импортировать «экраны/search.dart»; Map navigatorKeys = { const Home(): GlobalKey(), const Search(): GlobalKey(), }; Виджет selectView(int index) { вернуть просмотры[индекс]; } Представления списка = [Главная(), Поиск()]; класс Tabbar расширяет StatefulWidget { @переопределить State createState() => _TabbarState(); } класс _TabbarState расширяет State{ интервал _selectedTab = 0; @переопределить Сборка виджета (контекст BuildContext) { вернуть эшафот( BottomNavigationBar: BottomNavigationBar( высота: двойная бесконечность, тип: BottomNavigationBarType.fixed, BackgroundColor: const Color (0xff0d1117), selectedItemColor: Цвет (0xfff5f5f5), unselectedItemColor: Цвет (0xff333333), текущийИндекс: _selectedTab, onTap: (индекс) { print([]) setState(() { _selectedTab = индекс; }); }, Размер значка: 30, элементы: константа [ BottomNavigationBarItem( значок: Значок (Icons.home), этикетка: «Дом», ), BottomNavigationBarItem( значок: Значок (Icons.search_outlined), ярлык: «Поиск», ), BottomNavigationBarItem( значок: Значок (Icons.library_music), ярлык: «Ваша библиотека», ), BottomNavigationBarItem( значок: Значок(Icons.person), ярлык: "Профиль", ), ], ), тело: Стек( дети: [ _buildOffstageNavigator(0), _buildOffstageNavigator(1), ], ) // _buildOffstageNavigator(2), // _buildOffstageNavigator(3), //Куча( // дети: [ // renderView( // 0, // константный дом(), // ), // renderView( // 1, // константный поиск(), // ), // renderView( // 2, // Просмотр библиотеки(), // ), // renderView( // 3, //ПросмотрПрофиля(), // ), // ],; ); } Виджет _buildOffstageNavigator(int tabItem) { вернуть за кулисами( за кулисами: _selectedTab != tabItem, ребенок: Навигатор( ключ: navigatorKeys[selectView(_selectedTab)], InitialRoute: "/", // это имя маршрута onGenerateRoute: (routeSettings) { вернуть MaterialPageRoute( строитель: (контекст) => selectView(_selectedTab)); }, ), ); } } попробовал popuntill, но это не сработало, а также pushAndRemoveuntill привел к исчезновению нижней панели навигации.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение