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()),
);
}
请参见我希望下面的答案能回答您的问题。如果有用,请花点时间接受并投票表决。否则,请让我知道你需要澄清什么