animateToSectionIndex method

Future<void> animateToSectionIndex(
  1. int index, {
  2. Duration duration = const Duration(milliseconds: 1000),
  3. Curve curve = Curves.ease,
})

Implementation

Future<void> animateToSectionIndex(
  int index, {
  Duration duration = const Duration(milliseconds: 1000),
  Curve curve = Curves.ease,
}) async {
  if (_disabled) {
    return;
  }
  if (index < 0) {
    return;
  }
  if (position.isScrollingNotifier.value) {
    return;
  }
  final snapOffset = _getSnapOffsetFromIndex(index);
  if (snapOffset == null) {
    return;
  }
  if (onAnimatedScrollStart != null) {
    onAnimatedScrollStart!(_lastAnimatedIndex, index);
  }
  _isAnimating = true;
  if (_lastAnimatedIndex == index && triggerSameIndexAnimationEffect) {
    await super.animateTo(
      snapOffset - 100,
      duration: const Duration(milliseconds: 250),
      curve: curve,
    );
  }
  await animateTo(snapOffset, duration: duration, curve: curve);
  _isAnimating = false;
  _lastAnimatedIndex = index;
  if (onAnimatedScrollEnd != null) {
    onAnimatedScrollEnd!(_lastAnimatedIndex);
  }
}