Files
PiliPlus/lib/utils/extension/scroll_controller_ext.dart
dom cd26cf6d98 tweaks
Signed-off-by: dom <githubaccount56556@proton.me>
2026-04-29 14:08:46 +08:00

27 lines
581 B
Dart

import 'package:flutter/widgets.dart' show ScrollController, Curves;
extension ScrollControllerExt on ScrollController {
void animToTop() => animTo(0);
void animTo(
double offset, {
Duration duration = const Duration(milliseconds: 500),
}) {
if (!hasClients) return;
if ((offset - this.offset).abs() >= position.viewportDimension * 7) {
jumpTo(offset);
} else {
animateTo(
offset,
duration: duration,
curve: Curves.easeInOut,
);
}
}
void jumpToTop() {
if (!hasClients) return;
jumpTo(0);
}
}