首先说怎么返回多个页面,或者说怎么返回到指定的页面;
假设有 A > B > C > D > E > F 6个页面,当前在F页,要从F页回退到B页,
在点击事件中这么写:
//F回B
Navigator.popUntil(context, (route) {
if (route.settings.name == 'B') {
return true;
} else {
return false;
}
}
然后在A页面跳转B页面的地方这么写:
//A到B
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>B(),
settings: RouteSettings(name: 'B'),
),
);
假设我们定义了一个全局变量,我们在F页操作改变了这个变量的状态;而后B页面需要根据这个全局变量做出变化,但是此时我们返回到B页面时它是没有变化的,需要通过setState来更新B页面的状态;
在B页面这么写:
// B到C
() async {
await Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>C()));
setState(() {});
}