目前,我正在学习颤动,并且陷入了导航困境。我想要实现的是:对于所有屏幕都是全局的变量:例如,在主页上有一个变量分数,该分数用零初始化,在主页上有四个按钮,可进入四个不同的屏幕,单击主页上的按钮后,屏幕将切换到另一个屏幕。现在,在另一个屏幕上,我们将执行一些操作以更新score的值。现在,当我们返回主页时,应反映更新的分数,并且如果单击其他按钮将我们带到另一个屏幕,则更新的score也应反映在那里。
您可以通过多种方式执行此操作,但最简单的方法是使用Navigator类,然后通过.pop()
方法将要传递的值传递回父窗口小部件,以返回到第一个视图,如下所示:] >
Navigator.of(context).pop(your_data_here);
在父类上,您使用导航器导航到另一个视图,可以期望收到数据:
RaisedButton(
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) {
return OtherView();
}
)).then((value_from_other_view){
// You can here use the data from the other view
});
},
)