#flutter #dart #navbar #navigator #flutter-pageview
Вопрос:
У меня есть NavBar
кое-какие вещи. Для одного конкретного элемента я хотел бы push
использовать a Navigator
, для других я использую a Global-PageView
. Моя проблема в том, что мое приложение выходит из строя при попытке добавить Navigator.push...
:
Именно здесь я строю navBarItems
(2 — й-соответствующий):
List<BottomNavBarItem> _buildBottomNavBarItems(BuildContext context) {
return [
BottomNavBarItem(
index: 0,
selectedIndex: Provider.of<BottomNavBarProvider>(context, listen: true)
.selectedTabIndex,
text: 'Startseite',
iconBaseUrl: 'images/icons/home_',
onTap:
Provider.of<BottomNavBarProvider>(context, listen: false).selectTab,
),
BottomNavBarItem(
index: 1,
selectedIndex: Provider.of<BottomNavBarProvider>(context, listen: true)
.selectedTabIndex,
text: 'Eintrag',
iconBaseUrl: 'images/icons/add_black.png',
hasDynamicIconColor: false,
onTap: () {
Navigator.push(
context,
PageTransition(
type: PageTransitionType.bottomToTop,
child: EntryPage(),
duration: Duration(milliseconds: 200),
reverseDuration: Duration(milliseconds: 200),
curve: Curves.easeInOut,
),
);
},
),
BottomNavBarItem(
index: 2,
selectedIndex: Provider.of<BottomNavBarProvider>(context, listen: true)
.selectedTabIndex,
text: 'Verlauf',
iconBaseUrl: 'images/icons/progress_',
onTap:
Provider.of<BottomNavBarProvider>(context, listen: false).selectTab,
),
При нажатии на элемент в index 1
этом error
месте я получаю:
Closure call with mismatched arguments: function 'BottomNavBarState._buildBottomNavBarItems.<anonymous closure>'
Receiver: Closure: () => Null
Tried calling: BottomNavBarState._buildBottomNavBarItems.<anonymous closure>(1)
Found: BottomNavBarState._buildBottomNavBarItems.<anonymous closure>() => Null
Мой Provider
(который работает просто отлично) выглядит так:
class BottomNavBarProvider extends ChangeNotifier {
final PageController navigationController = PageController(initialPage: 0);
int selectedTabIndex = 0;
BottomNavBarProvider() {}
void selectTab(int index) {
navigationController.jumpToPage(index);
selectedTabIndex = navigationController.page?.round() ?? 0;
notifyListeners();
}
}
Что я здесь упускаю? Дайте мне знать, если вам понадобятся какие-либо дополнительные подробности!