Flutter学习

flutter:如何判断 widget 是否正在绘制

2021-06-19  本文已影响0人  李小轰

直接上代码:

//flutter调度阶段是否为 build/layout/paint
bool get isPersistentCallbacks =>
      SchedulerBinding.instance?.schedulerPhase ==
      SchedulerPhase.persistentCallbacks;

使用场景,例如重写 OverLayEntry 中 markNeedsBuild 方法

@override
  void markNeedsBuild() {
    if (isPersistentCallbacks) {
      SchedulerBinding.instance?.addPostFrameCallback((_) {
        super.markNeedsBuild();
      });
    } else {
      super.markNeedsBuild();
    }
  }
课后知识整理

Flutter中有几个调度阶段:

上一篇下一篇

猜你喜欢

热点阅读