Files
PiliPlus/lib/utils/extension/scroll_controller_ext.dart
bggRGjQaUbCoE 0baf3fcd36 tweaks
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-12-16 15:56:54 +08:00

27 lines
551 B
Dart

import 'package:flutter/widgets.dart';
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);
}
}