navigateToRootPage<T> function
dynamic
navigateToRootPage<T>({
导航到根页面(支持Widget和命名路由) 提供更灵活的导航方式,支持直接传入Widget或使用命名路由
context 当前页面的BuildContext
isPop 是否使用弹出方式(true)还是推送方式(false)
routeName 目标路由名称,默认为根路由"/"
widget 要导航到的Widget页面(优先级高于routeName)
arguments 传递给目标页面的参数
返回Future,表示导航操作的完成状态
Implementation
navigateToRootPage<T>({
required BuildContext context,
bool isPop = true,
String routeName = "/",
Widget? widget,
Object? arguments,
}) {
if (isPop) {
// 弹出到指定路由
Navigator.popUntil(
context,
ModalRoute.withName(routeName),
);
} else {
if (widget != null) {
// 使用Widget直接导航并清除所有历史页面
return Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute<T>(
builder: (context) => widget,
),
(route) => false,
);
} else {
// 使用命名路由导航并清除所有历史页面
return Navigator.pushNamedAndRemoveUntil(
context,
routeName,
(route) => false,
arguments: arguments,
);
}
}
}