Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 在Flatter中从底部导航栏执行整页路由_Dart_Flutter - Fatal编程技术网

Dart 在Flatter中从底部导航栏执行整页路由

Dart 在Flatter中从底部导航栏执行整页路由,dart,flutter,Dart,Flutter,我实现了一个底部导航栏,当点击图标时,脚手架的主体被重建。但是当我的第三个图标(index=2)被按下时,我想要一个完整的页面路径,这样底部的导航栏就不会显示了。我有一些代码可以工作,但是没有一个后退按钮来弹出堆栈(因为它没有被推入堆栈)如何使用“后退”按钮对底部导航栏上的一个索引进行全页导航? 代码: class MainApp扩展StatefulWidget{ @凌驾 _MainAppState createState()=>\u MainAppState(); } 类_MainAppSta

我实现了一个底部导航栏,当点击图标时,脚手架的主体被重建。但是当我的第三个图标(index=2)被按下时,我想要一个完整的页面路径,这样底部的导航栏就不会显示了。我有一些代码可以工作,但是没有一个后退按钮来弹出堆栈(因为它没有被推入堆栈)如何使用“后退”按钮对底部导航栏上的一个索引进行全页导航?

代码:

class MainApp扩展StatefulWidget{
@凌驾
_MainAppState createState()=>\u MainAppState();
}
类_MainAppState扩展状态{
变量_页=[
第1页(),
第2页(),
特殊页面(),
第3页(),
第4页(),
];
int _currentIndex=0;
onTabTapped(int索引){
设置状态(){
_currentIndex=索引;
});
}
@凌驾
小部件构建(构建上下文){
return _currentIndex==2?SpecialPage():Scaffold(
正文:_页[_当前索引],
底部导航栏:底部导航栏(
类型:BottomNavigationBarType.fixed,
项目:[
BottomNavigationBarItem(图标:图标(Icons.library_books)),标题:文本(“”),
BottomNavigationBarItem(图标:图标(图标.通知),标题:文本(“”)),
BottomNavigationBarItem(图标:图标(图标.添加圆圈\u轮廓),标题:文本(“”)),
BottomNavigationBarItem(图标:图标(Icons.mail),标题:文本(“”)),
BottomNavigationBarItem(图标:图标(Icons.person),标题:文本(“”)),
],
onTap:onTabTapped,
currentIndex:_currentIndex,
),
);
}
}

不要使用
底部导航栏
,而是在主体上使用
堆栈

body: Stack(
  children: <Widget>[

      // whatever your main screen content is

      Positioned(
        bottom: 0.0,
        left: 0.0,
        right: 0.0,
        child: MyCustomNav(),
      ),

  ]
)
body:Stack(
儿童:[
//无论你的主屏幕内容是什么
定位(
底部:0.0,
左:0.0,
右:0.0,
子项:MyCustomNav(),
),
]
)

然后,您只需将五个项目排成一行,即可执行任何操作。

堆叠的customnav栏是否会阻止底部的主屏幕,即使我向上滚动到一定程度?是的,它将保持在那里。但如果你想让它消失,你可以随时收听scrollcontroller并根据scrollInfo.metrics.pixels修改它
body: Stack(
  children: <Widget>[

      // whatever your main screen content is

      Positioned(
        bottom: 0.0,
        left: 0.0,
        right: 0.0,
        child: MyCustomNav(),
      ),

  ]
)