initOpacityAnimation method

void initOpacityAnimation(
  1. OpacityAnimationConfig config
)

initialize the opacity animation of current slice

Implementation

void initOpacityAnimation(OpacityAnimationConfig config) {
  if (!config.enabled) {
    opacityAnimation = ConstantTween<double>(1).animate(widget.controller);
    return;
  }

  List<TweenSequenceItem<double>> sequenceItemList = [];
  if (config.animationStartDelay > 0) {
    sequenceItemList.add(
      TweenSequenceItem(tween: Tween(
          begin: 0,
          end: 0
      ), weight: config.animationStartDelay),
    );
  }

  sequenceItemList.add(
    TweenSequenceItem(
        tween: Tween(
            begin: 0,
            end: 1,
        ),
        weight: 1 - config.animationFinishDelay - config.animationStartDelay
    ),
  );

  if (config.animationFinishDelay > 0) {
    sequenceItemList.add(
        TweenSequenceItem(
          tween: ConstantTween(1),
          weight: config.animationFinishDelay,
        )
    );
  }

  opacityAnimation = TweenSequence<double>(
      sequenceItemList
  ).animate(
      CurvedAnimation(
          parent: widget.controller,
          curve: config.curve
      )
  );
}