每次Navigator.push到下一页时都会调用的回调
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每次Navigator.push到下一页时都会调用的回调相关的知识,希望对你有一定的参考价值。
我有两个页面,彼此像这样移动。
MyHomePage -> ResPage -> MyHomePage -> ResPage
我想在每次出现ResPage时执行该功能。
代码是此
Navigator.push(context,MaterialPageRoute(
builder: (context) => ResPage()));
Navigator.push(context,MaterialPageRoute(
builder: (context) => MyHomePage())
resPage是有状态的小部件。
class ResPage extends StatefulWidget {
ResPage({Key key}) : super(key: key);
@override
_ResPageState createState() => _ResPageState();
}
class _ResPageState extends State<ResPage> {
void initState(){ // it called just once.
}
@override
Widget build(BuildContext context) {
return Stack( // it called many times.
children: <Widget>[
background,
Scaffold(
backgroundColor: Colors.transparent,
body: resStack
),
],
);
}
[initState()
仅被调用一次,build
被多次调用。
页面出现时有回叫吗?
答案
是的!
您可以添加后框架回调(在构建窗口小部件之后调用)
像这样:
Widget build(BuildContext context) {
WidgetsBinding.addPostFrameCallback(functionToCall);
}
以上是关于每次Navigator.push到下一页时都会调用的回调的主要内容,如果未能解决你的问题,请参考以下文章