addController method

void addController(
  1. String label,
  2. AnimationController controller, {
  3. VoidCallback? onGroupMembersCompleted,
})

添加控制器到指定分组(自动创建不存在的分组)

Implementation

void addController(String label, AnimationController controller, {VoidCallback? onGroupMembersCompleted}) {
  // 确保分组存在
  createGroup(label, onGroupMembersCompleted: onGroupMembersCompleted);

  final group = _groups[label]!;
  if (!group.contains(controller)) {
    group.add(controller);
    _controllerCompletionStatus[controller] = false;

    // 修复:添加控制器后,如果分组从空变为非空,需要重置完成状态
    if (group.length == 1) { // 刚刚从空变成有1个控制器
      _groupCompletionStatus[label] = false;
    }

    controller.addStatusListener((status) {
      _handleControllerStatusChange(controller, label, status);
    });
  }
}