flutter 判断当前显示的页面
时间: 2023-09-16 19:12:56 浏览: 473
要判断当前显示的页面,你可以使用Flutter提供的`Navigator`类来获取当前路由栈的信息。你可以通过`Navigator.of(context).currentRoute`来获取当前路由的名称。
下面是一个示例代码,展示如何判断当前显示的页面:
```dart
String getCurrentRoute(BuildContext context) {
NavigatorState navigatorState = Navigator.of(context);
if (navigatorState != null && navigatorState.overlay != null) {
OverlayRoute<dynamic> route = navigatorState.overlay?.currentRoute;
if (route != null) {
return route.settings.name;
}
}
return null;
}
```
在上述示例中,我们定义了一个函数`getCurrentRoute`,它接受一个`BuildContext`作为参数,并返回当前显示的页面的路由名称。它通过`Navigator.of(context).overlay.currentRoute`来获取当前所在的路由,并返回其名称。
请注意,为了能够正常获取当前路由信息,你需要在路由中设置`name`属性来标识每个页面的路由名称。
示例用法:
```dart
String currentRoute = getCurrentRoute(context);
print('当前显示的页面是:$currentRoute');
```
这样,你就可以判断当前显示的页面了。如果有多个页面,你可以通过比较字符串来确定当前页面是哪个。
阅读全文