每次Navigator.Push到下一页都称为回调

时间:2019-12-05 16:30:42

标签: flutter dart

我有两个这样的页面彼此移动。

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被调用多次。

页面出现时有回叫吗?

1 个答案:

答案 0 :(得分:-1)

是的!

您可以添加一个后框架回调(在构建小部件之后调用)

像这样:

Widget build(BuildContext context) {
  WidgetsBinding.addPostFrameCallback(functionToCall);
}