Flutter 导航到另一个屏幕时,颤振中没有底部导航栏图标,但将底部导航栏保留在另一个屏幕中

Flutter 导航到另一个屏幕时,颤振中没有底部导航栏图标,但将底部导航栏保留在另一个屏幕中,flutter,bottomnavigationview,Flutter,Bottomnavigationview,我有一个带有底部导航栏的main.dart,它有5个选项卡,当单击选项卡时,它会进入相应的页面 void main() => runApp(MyStatefulWidget()); class MyStatefulWidget extends StatefulWidget { @override _MyStatefulWidgetState createState() => _MyStatefulWidgetState(); } class _MyStatefulWidg

我有一个带有底部导航栏的
main.dart
,它有5个选项卡,当单击选项卡时,它会进入相应的页面

void main() => runApp(MyStatefulWidget());

class MyStatefulWidget extends StatefulWidget {
  @override
  _MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}

class _MyStatefulWidgetState extends State<MyStatefulWidget> {
  int _selectedIndex = 0;

  void _onItemTapped(int index) {
    setState(() {
      _selectedIndex = index;
    });
  }

  final List<Widget> _children = [
    ProfilePage1(),
    EventPage3(),
    HomePage2(),
    AllEventPage(),
    ProfilePage1(),
  ];

  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider<EventModifier>(
            create: (context) => EventModifier()),
      ],
      child: MaterialApp(
        debugShowCheckedModeBanner: false,

        home: Scaffold(
          body: Center(child: _children.elementAt(_selectedIndex)),
          bottomNavigationBar: BottomNavigationBar(
            items: <BottomNavigationBarItem>[
              BottomNavigationBarItem(icon: Icon(Icons.home), title: Text("")),
              BottomNavigationBarItem(
                  icon: Icon(Icons.calendar_today), title: Text("")),
              BottomNavigationBarItem(
                  icon: Icon(
                    Icons.account_circle,
                    size: 45,
                    color: Color(0xFF334192),
                  ),
                  title: Text("")),
              BottomNavigationBarItem(
                  icon: Icon(Icons.message), title: Text("")),
              BottomNavigationBarItem(
                  icon: Icon(Icons.table_chart), title: Text("")),
            ],
            currentIndex: _selectedIndex,
            selectedItemColor: Color(0xFF334192),
            unselectedItemColor: Colors.grey,
            onTap: _onItemTapped,
          ),
        ),
      ),
    );
  }
}
void main()=>runApp(MyStatefulWidget());
类MyStatefulWidget扩展了StatefulWidget{
@凌驾
_MyStatefulWidgetState createState()=>\u MyStatefulWidgetState();
}
类_MyStatefulWidgetState扩展状态{
int _selectedIndex=0;
void\u未映射(整数索引){
设置状态(){
_selectedIndex=索引;
});
}
最终列表_子项=[
ProfilePage1(),
EventPage3(),
主页2(),
AllEventPage(),
ProfilePage1(),
];
@凌驾
小部件构建(构建上下文){
回程多供应商(
供应商:[
变更通知提供者(
创建:(上下文)=>EventModifier()),
],
孩子:MaterialApp(
debugShowCheckedModeBanner:false,
家:脚手架(
正文:中心(子项:_children.elementAt(_selectedIndex)),
底部导航栏:底部导航栏(
项目:[
BottomNavigationBarItem(图标:图标(Icons.home),标题:文本(“”),
底部导航气压计(
图标:图标(Icons.calendar_today),标题:文本(“”),
底部导航气压计(
图标:图标(
Icons.account_圈,
尺码:45,
颜色:颜色(0xFF334192),
),
标题:文本(“”),
底部导航气压计(
图标:图标(Icons.message),标题:文本(“”),
底部导航气压计(
图标:图标(图标、表格、图表),标题:文本(“”),
],
currentIndex:_selectedIndex,
选择编辑颜色:颜色(0xFF334192),
unselectedItemColor:Colors.grey,
onTap:\u未映射,
),
),
),
);
}
}
现在,在第3个选项卡中有一个名为“全部查看”的按钮,单击该按钮时,它将转到底部导航栏的第4页,并自动单击底部导航栏的第4个选项卡

如何在颤振中执行此操作?flutt

要手动更改底部导航栏所选项目,请设置

_selectedIndex = 4;   
要在单击“全部查看”按钮时导航到AllEventTab。。。一种方法是在按钮的onPressed()中使用Navigator.push(),如下所示:

onPressed: () {
  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => AllEventTab()),
  );
}   

请参见

我希望下面的答案能回答您的问题。如果有用,请花点时间接受并投票表决。否则,请让我知道你需要澄清什么