小白学Flutter - GetX和系统的Navigator的对

2023-12-28  本文已影响0人  林希品

打开到新的页面:

Get.to(NextScreen());

对应原生路由:

Navigator.push(context, MaterialPageRoute<void>(
builder: (BuildContext context) {
return NextScreen();
},
));

返回:

Get.back();

对应原生路由:

Navigator.pop(context);

打开新页面,并且用新页面替换旧页面(删除旧页面):

Get.off(NextScreen());

对应原生路由:

Navigator.pushReplacement(context, MaterialPageRoute<void>(
builder: (BuildContext context) {
return NextScreen();
},
));

打开新页面并删除之前的所有路由:

Get.offAll(NextScreen());

对应原生路由:

Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute<void>(
builder: (BuildContext context) {
return NextScreen();
},
),
(Route<dynamic> route) => false,
);

导航到新页面,在返回时接收返回数据:

var data = await Get.to(NextScreen());

对应原生路由:

var data = await Navigator.push(context, MaterialPageRoute<void>(
builder: (BuildContext context) {
return NextScreen();
},
));

带返回值返回前一个路由,配合上面使用:

Get.back(result: 'success');

对应原生路由:

Navigator.pop(context, 'success');
上一篇 下一篇

猜你喜欢

热点阅读