aves/lib/widgets/common/sloppy_scroll_physics.dart

25 lines
719 B
Dart

import 'package:flutter/gestures.dart';
import 'package:flutter/widgets.dart';
class SloppyScrollPhysics extends ScrollPhysics {
const SloppyScrollPhysics({
this.touchSlopFactor = 1,
ScrollPhysics parent,
}) : super(parent: parent);
// in [0, 1]
// 0: most reactive but will not let other recognizers accept gestures
// 1: less reactive but gives the most leeway to other recognizers
final double touchSlopFactor;
@override
SloppyScrollPhysics applyTo(ScrollPhysics ancestor) {
return SloppyScrollPhysics(
touchSlopFactor: touchSlopFactor,
parent: buildParent(ancestor),
);
}
@override
double get dragStartDistanceMotionThreshold => kTouchSlop * touchSlopFactor;
}