build执行导航代码时,下面类中的函数会TestWidget被调用两次。Test Widget在控制台上打印两次。
有谁知道为什么会这样?
class TestWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
print("Test Widget");
return new Scaffold(body: new Text("TEST WIDGET"),);
}
}
Run Code Online (Sandbox Code Playgroud)
导航代码:
Navigator.of(context).pushNamed(AppRoutes.fieldData);`
Run Code Online (Sandbox Code Playgroud)
路线定义:
AppRoutes.fieldData: (context) {
return new TestWidget();
},
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为动画。
当在页面内容中拖动路线时,会构建渲染的脸部以进行动画处理,然后,当它就位时,会再次重新构建。
您可以清楚地看到它在构建函数中放置了一个调试中断,并尝试导航到这样的路线:当路线即将进入但仍然不可见时,它将首先停止;然后当它安顿下来时。
| 归档时间: |
|
| 查看次数: |
1679 次 |
| 最近记录: |