我想使用抽屉导航到不同的路线,但是如果我已经在该路线上,我每次点击它时都不想打开路线的新实例,而是我希望在这种情况下新的路线是没开 . 到目前为止这是我的代码:
Widget build(BuildContext context){
return new Drawer(
child:
new ListView(
children: <Widget>[
new ListTile(
title: new Text("NewRoute"),
onTap: () {
Navigator.of(context).pop;
Navigator.of(context).pushNamed('/NewRoute');
}
)
)
)
}
我想使用条件语句来检查我们是否在某条路线上 . 我知道有一种方法可以检查我们当前使用Route类的isCurrent的路径
https://docs.flutter.io/flutter/widgets/Route/isCurrent.html
虽然我不知道如何实现它 .
先感谢您!
3 回答
Navigator
不公开当前路线 .你可以做的是使用
Navigator.popUntil(callback)
作为popUtil
传递回调当前Route
,其中包括它的名称和内容 .Rémi's answer真的对我很有帮助,但是如果你是我的版本,还有一些额外的检查和解释性文件:
请注意,使用
pushNamed
和popAndPushNamed
的此实现要求您在routes:
参数的顶级MaterialApp
中定义Route
名称,如下所示:使用以下代码检查路由是否是最顶层的...