首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BottomNavigationBar和Navigator?

BottomNavigationBar和Navigator?
EN

Stack Overflow用户
提问于 2021-12-20 13:11:15
回答 1查看 31关注 0票数 -2

我对这段代码有问题,为什么不工作?请。

我的代码:

代码语言:javascript
运行
复制
Container(
  color: Colors.white,
  child: BottomNavigationBar(
    onTap: (_index) {
      StepState.disabled.index;
      switch (_index) {
        case 0:
          onTap:
          () {
            Navigator.push(
              context,
              MaterialPageRoute(builder: (context) => Home()),
            );
          };
          break;

        case 1:
          onTap:
          () {
            Navigator.push(
              context,
              MaterialPageRoute(builder: (context) => NosVoyages()),
            );
          };
          break;
      }
      ;
    },
    currentIndex: _index,
    items: [
      BottomNavigationBarItem(
          label: '',
          icon: Padding(
            padding: const EdgeInsets.only(top: 10.0),
            child: Icon(Icons.home),
          )),
      BottomNavigationBarItem(
          label: '',
          icon: Padding(
            padding: const EdgeInsets.only(top: 10.0),
            child: Icon(Icons.list_alt),
          )),
    ],
    type: BottomNavigationBarType.fixed,
    backgroundColor: Colors.white,
    unselectedItemColor: Colors.black,
  ),
);

主页加载良好,但一旦我单击任何按钮,它就什么都不会改变。也许MaterialApp或Scaffold有问题,但我还不能修复它。有人能告诉我问题出在哪里以及如何解决吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-20 14:29:37

尝试这个已初始化的_index变体

代码语言:javascript
运行
复制
int _index=0;
 @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: SafeArea(
            top: false,
            child: Container(
              color: Colors.white,
              child: Padding(
                padding: const EdgeInsets.all(20.0),
                child: BottomNavigationBar(
                  onTap: (_index) {
                    StepState.disabled.index;
                    switch (_index) {
                      case 0:
                        {
                          Navigator.push(
                            context,
                            MaterialPageRoute(builder: (context) => Home()),
                          );
                          setState(() {
                            _index = 1;
                          });
                        }
                        ;
                        break;

                      case 1:
                        {
                          setState(() {
                            _index = 0;
                          });
                          Navigator.push(
                            context,
                            MaterialPageRoute(
                                builder: (context) => NosVoyages()),
                          );
                        }
                        ;
                        break;
                    }
                  },
                  currentIndex: _index,
                  items: [
                    BottomNavigationBarItem(
                        label: '',
                        icon: Padding(
                          padding: const EdgeInsets.only(top: 10.0),
                          child: Icon(Icons.home),
                        )),
                    BottomNavigationBarItem(
                        label: '',
                        icon: Padding(
                          padding: const EdgeInsets.only(top: 10.0),
                          child: Icon(Icons.list_alt),
                        )),
                  ],
                  type: BottomNavigationBarType.fixed,
                  backgroundColor: Colors.white,
                  unselectedItemColor: Colors.black,
                ),
              ),
            )));
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70422339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档