我有一个 NavBar
,里面有一些物品。对于一个特定项目,我想用 push
Navigator
,对于其他项目,我使用 Global-PageView
。我的问题是我的应用程序在尝试添加 Navigator.push...
时崩溃:
这是我构建 navBarItems
的地方(第二个是相关的):
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();
}
}
我在这里错过了什么?如果您需要更多详细信息,请告诉我!