【发布时间】:2020-08-05 14:12:44
【问题描述】:
我试图在应用程序的初始页面中构建一个底部导航栏,我在这个底部栏中添加了几个选项卡,用户应该能够点击其中一个以访问不同的选项卡。但该栏仅用于导航到其他页面。在其中一个页面中,我添加了card,用户应该点击它们来查看详细信息页面。但是,当它在详细信息页面中时,导航栏消失了。我想知道如何让我的导航栏在应用中始终可见。
下面的代码是关于我如何在我的主页中建立底部栏的,
......
int currentTab = 0; // to keep track of active tab index
final List<Widget> screens = [
recommend(),
optional(),
backtest(),
machine(),
]; // to store tab views
Widget currentScreen = recommend(); // initial pages
final PageStorageBucket bucket = PageStorageBucket();
......
bottomNavigationBar: BottomAppBar(
color: Colors.white,
elevation: 0.2,
shape: CircularNotchedRectangle(),
notchMargin: 10,
child: Container(
height: 60,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
MaterialButton(
minWidth: 40,
onPressed: (){
setState(() {
currentScreen = recommend();
currentTab = 0;
});
},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(
Icons.format_line_spacing,
color: currentTab == 0 ? Colors.redAccent : Colors.grey,),
Text(
'',
style: TextStyle(
color: currentTab == 0 ? Colors.redAccent : Colors.grey, ),)
],),
),
MaterialButton(
minWidth: 40,
onPressed: (){
setState(() {
currentScreen = optional();
currentTab = 1;
});
},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(
Icons.offline_pin,
color: currentTab == 1 ? Colors.redAccent : Colors.grey,),
Text(
'',
style: TextStyle(
color: currentTab == 1 ? Colors.redAccent : Colors.grey, ),)
],),
),
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
MaterialButton(
minWidth: 40,
onPressed: (){
setState(() {
currentScreen = backtest();
currentTab = 2;
});
},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(
Icons.replay,
color: currentTab == 2 ? Colors.redAccent : Colors.grey,),
Text(
'',
style: TextStyle(
color: currentTab == 2 ? Colors.redAccent : Colors.grey, ),)
],),
),
MaterialButton(
minWidth: 40,
onPressed: (){
setState(() {
currentScreen = machine();
currentTab = 3;
});
},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(
Icons.android,
color: currentTab == 3 ? Colors.redAccent : Colors.grey,),
Text(
'',
style: TextStyle(
color: currentTab == 3 ? Colors.redAccent : Colors.grey, ),)
],),
),
],
)
],
),
),
),
下面的代码是我如何导航到详细信息页面,
return Container(
child: Card(
child: new InkWell(
onTap: (){
Navigator.push(context,
MaterialPageRoute(builder: (context) => stockDetail()));
},
......
我正在寻找一种基于我现有代码解决问题的方法,但如果有任何其他有效的方法来解决它,我将不胜感激。
【问题讨论】: