导航栏项目点击上的颤振自定义推送动画

时间:2021-03-22 15:28:03

标签: flutter dart navbar navigator flutter-pageview

我有一个 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();
  }
}

我在这里错过了什么?如果您需要更多详细信息,请告诉我!

0 个答案:

没有答案