flutter/lib/components/only_down_scroll_physics.dart
2025-07-21 15:46:30 +08:00

28 lines
843 B
Dart

// 自定义物理效果 - 只允许下拉不允许上推
import 'package:flutter/material.dart';
class OnlyDownScrollPhysics extends ScrollPhysics {
const OnlyDownScrollPhysics({super.parent});
@override
OnlyDownScrollPhysics applyTo(ScrollPhysics? ancestor) {
return OnlyDownScrollPhysics(parent: buildParent(ancestor));
}
@override
double applyBoundaryConditions(ScrollMetrics position, double value) {
// 阻止向上滚动(当不在顶部时)
if (value > position.pixels && position.pixels > position.minScrollExtent) {
return value - position.pixels;
}
// 允许下拉刷新(当在顶部时下拉)
if (value < position.pixels && position.pixels <= position.minScrollExtent) {
return 0.0; // 允许下拉
}
return super.applyBoundaryConditions(position, value);
}
}