20 lines
442 B
Dart
20 lines
442 B
Dart
|
|
library;
|
|
|
|
|
|
double multiSourceScrollOffset({
|
|
required int activeIndex,
|
|
required double viewportWidth,
|
|
required double leadingPad,
|
|
required double maxScrollExtent,
|
|
double cardWidth = 220.0,
|
|
double cardGap = 12.0,
|
|
}) {
|
|
if (activeIndex <= 0) return 0.0;
|
|
final target =
|
|
leadingPad +
|
|
activeIndex * (cardWidth + cardGap) -
|
|
(viewportWidth - cardWidth) / 2;
|
|
return target.clamp(0.0, maxScrollExtent).toDouble();
|
|
}
|