animateToSectionIndex method
Future<void>
animateToSectionIndex(
- int index, {
- Duration duration = const Duration(milliseconds: 1000),
- 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);
}
}