dismissInContext static method

dynamic dismissInContext(
  1. BuildContext context
)

在 context 中关闭 loading ,(一定记得在 dispose 方法中调用 LoadingUtil.dismissInContext(context);)

Implementation

static dismissInContext(BuildContext context) {
  if (_minLoadingMilliseconds == null) {
    _dismissInContext(context);
    return;
  }

  _startLoadingDateTime ??= DateTime.now();

  Duration difference = DateTime.now().difference(_startLoadingDateTime!);
  bool canFinishLoad = difference.inMilliseconds >= _minLoadingMilliseconds!;
  if (canFinishLoad == false) {
    int remainLoadingMilliseconds =
        _minLoadingMilliseconds! - difference.inMilliseconds;
    Future.delayed(Duration(milliseconds: remainLoadingMilliseconds))
        .then((value) {
      _minLoadingMilliseconds = null;
      _startLoadingDateTime = null;
      _dismissInContext(context);
      return;
    });
  } else {
    _minLoadingMilliseconds = null;
    _startLoadingDateTime = null;
    _dismissInContext(context);
  }
}