如何知道新推送的屏幕何时在 Flutter 上完全转换?

时间:2021-05-26 20:20:26

标签: flutter dart

问题:假设只有 2 个屏幕。当在第一个屏幕上按下第二个屏幕时,过渡动画会抖动并且不流畅。原因是第二个屏幕有一个非常昂贵的小部件。我试图等到过渡动画完全完成,然后渲染昂贵的小部件。目前,我只是推迟使用

await Future.delayed(const Duration(milliseconds: 200));

我想要达到的目标

 class SecondScreenState extends State<SecondScreen> {
  @override
  void initState() {
    super.initState();

    initialize();
  }

  initialize() async {
    await waitTillTransitionFinishes;

    loadCostlyWidgets;
  }
}

我正在如下导航

Navigator.push(context, MaterialPageRoute(
    builder: (context) => SecondScreen()
  )
)

1 个答案:

答案 0 :(得分:0)

你试过了吗

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
    WidgetsBinding.instance.addPostFrameCallback(
      (_) {
        loadCostlyWidgets;
      },
    );
  }