颤振导航重新渲染历史记录堆栈页面中的所有页面



我刚刚意识到,当导航更改时,颤振会重新渲染历史记录中的所有页面堆栈。就我而言,我不想在我所有的堆栈页面历史记录下面呈现页面。我只想呈现我的当前页面。

第一页

Widget build(BuildContext context){
print("1st page");
return RaisedButton(onPressed: goToSecondPage())
}

第二页

Widget build(BuildContext context){
print("2nd page");
return RaisedButton(onPressed: goToThirdPage())
}

第三页

Widget build(BuildContext context){
print("3rd page");
return Text("I am Third Page, The Last");
}

在我的实现中,我使用Navigator.push(context, MaterialPageRoute(builder: (_) => SecondPage())进行导航。

日志 方案:启动

1st page

转到第二页

2nd page
1st page

转到第三页

3rd page
2nd page
1st page

返回第二页

2nd page
1st page

这是 Flutter 的当前预期行为,请参阅此处的对话:https://github.com/flutter/flutter/issues/11655

这是另一个SO问题在谈论同一件事:如何处理不需要的小部件构建?

以及当前打开的拉取请求来更改此行为: https://github.com/flutter/flutter/pull/44731

最新更新