waitForAnimationsComplete method

Future<void> waitForAnimationsComplete()

等待所有动画完成

Implementation

Future<void> waitForAnimationsComplete() async {
  if (!isBound) return;

  final animatingPositions = _state!.isAnimating.entries
      .where((entry) => entry.value)
      .map((entry) => entry.key)
      .toList();

  if (animatingPositions.isEmpty) return;

  // 等待所有动画控制器完成
  final futures = <Future>[];
  for (final position in animatingPositions) {
    final controller = _state!.animationControllers[position];
    if (controller != null) {
      futures.add(controller.isAnimating
          ? controller.isCompleted
              ? Future.value()
              : controller.forward().orCancel
          : Future.value());
    }
  }

  if (futures.isNotEmpty) {
    await Future.wait(futures);
  }
}