pushNamedAndRemoveUntil<T extends Object?> method
Future<T?>
pushNamedAndRemoveUntil<T extends Object?>(
- String routeName,
- String untilRouteName, {
- PageType pageType = PageType.flutter,
- bool isOpaque = true,
- bool animated = true,
- Map<
String, dynamic> ? arguments,
override
push 到指定页面,同时会清除从页面untilRouteName页面到指定routeName链路上的所有页面
@param routeName 要跳转的页面 @param pageType PageType页面类型,默认PageType.flutter @param isOpaque 是否不透明 默认-true 不透明 @param animated 是否开启动画,默认开启 @param untilRouteName 移除截止页面,如果untilRouteName不存在会直接push @return T 泛型,用于指定返回类型
Implementation
@override
Future<T?> pushNamedAndRemoveUntil<T extends Object?>(
String routeName,
String untilRouteName, {
PageType pageType = PageType.flutter,
bool isOpaque = true,
bool animated = true,
Map<String, dynamic>? arguments,
}) async {
dynamic result;
if (navigatorObserver.routeExists(untilRouteName) && rootContext.mounted) {
result = await Navigator.of(rootContext).pushNamedAndRemoveUntil(
routeName,
ModalRoute.withName(untilRouteName),
arguments: arguments,
);
} else {
result = await Navigator.of(rootContext).pushNamed(
routeName,
arguments: arguments,
);
}
if (result is! T?) {
throw TypeError();
}
return result;
}