RefreshPhysics class

用于配置下拉刷新和上拉加载的滚动物理效果

该类扩展了Flutter的ScrollPhysics,主要用于:

  1. 允许视口超出边缘滚动,无论父级物理效果是什么
  2. 处理刷新过程中的滚动拦截
  3. 处理二级刷新打开和关闭时的滚动
  4. 支持自定义弹簧回弹动画
  5. 适配iOS和Android不同的滚动效果

可以通过RefreshConfiguration设置更多参数

示例用法:

SmartRefresher(
  physics: RefreshPhysics(
    maxOverScrollExtent: 100.0,
    springDescription: SpringDescription(
      stiffness: 170.0,
      damping: 16.0,
      mass: 1.0,
    ),
  ),
  controller: _refreshController,
  onRefresh: _onRefresh,
  child: ListView.builder(
    itemCount: 20,
    itemBuilder: (context, index) => ListTile(title: Text("Item $index")),
  ),
);

参考:

Inheritance

Constructors

RefreshPhysics({ScrollPhysics? parent, int? updateFlag, double? maxUnderScrollExtent, SpringDescription? springDescription, RefreshController? controller, double? dragSpeedRatio, double? topHitBoundary, double? bottomHitBoundary, bool? enableScrollWhenRefreshCompleted, double? maxOverScrollExtent})
创建滚动物理效果,用于控制下拉刷新和上拉加载的行为

Properties

allowImplicitScrolling bool
Whether a viewport is allowed to change its scroll position implicitly in response to a call to RenderObject.showOnScreen.
no setterinherited
allowUserScrolling bool
Whether a viewport is allowed to change the scroll position as the result of user input.
no setterinherited
bottomHitBoundary double?
底部碰撞边界
final
controller RefreshController?
刷新控制器
final
dragSpeedRatio double?
拖动速度比例
final
dragStartDistanceMotionThreshold double?
The minimum amount of pixel distance drags must move by to start motion the first time or after each time the drag motion stopped.
no setterinherited
enableScrollWhenRefreshCompleted bool?
刷新完成后是否允许滚动
final
hashCode int
The hash code for this object.
no setterinherited
maxFlingVelocity double
Scroll fling velocity magnitudes will be clamped to this value.
no setterinherited
maxOverScrollExtent double?
最大上拉超出范围
final
maxUnderScrollExtent double?
最大下拉超出范围
final
minFlingDistance double
The minimum distance an input pointer drag must have moved to be considered a scroll fling gesture.
no setterinherited
minFlingVelocity double
The minimum velocity for an input pointer drag to be considered a scroll fling.
no setterinherited
parent ScrollPhysics?
If non-null, determines the default behavior for each method.
finalinherited
runtimeType Type
获取运行时类型
no setteroverride
spring SpringDescription
The spring to use for ballistic simulations.
no setterinherited
springDescription SpringDescription?
弹簧动画描述
final
tolerance Tolerance
Deprecated. Call toleranceFor instead.
no setterinherited
topHitBoundary double?
顶部碰撞边界
final
updateFlag int?
更新标志,用于控制运行时类型
final
viewportRender RenderViewport?
视口渲染对象
getter/setter pair

Methods

adjustPositionForNewDimensions({required ScrollMetrics oldPosition, required ScrollMetrics newPosition, required bool isScrolling, required double velocity}) double
Describes what the scroll position should be given new viewport dimensions.
inherited
applyBoundaryConditions(ScrollMetrics position, double value) double
应用边界条件到滚动位置
override
applyPhysicsToUserOffset(ScrollMetrics position, double offset) double
将物理效果应用到用户拖动偏移上
override
applyTo(ScrollPhysics? ancestor) RefreshPhysics
创建一个新的滚动物理效果,将当前物理效果应用到父级物理效果上
override
buildParent(ScrollPhysics? ancestor) ScrollPhysics?
If parent is null then return ancestor, otherwise recursively build a ScrollPhysics that has ancestor as its parent.
inherited
carriedMomentum(double existingVelocity) double
Returns the velocity carried on repeated flings.
inherited
createBallisticSimulation(ScrollMetrics position, double velocity) Simulation?
创建弹道滚动模拟
override
findViewport(BuildContext? context) RenderViewport?
查找视口渲染对象
frictionFactor(double overscrollFraction) double
计算摩擦系数
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
recommendDeferredLoading(double velocity, ScrollMetrics metrics, BuildContext context) bool
Provides a heuristic to determine if expensive frame-bound tasks should be deferred.
inherited
shouldAcceptUserOffset(ScrollMetrics position) bool
决定是否接受用户的拖动偏移
override
toleranceFor(ScrollMetrics metrics) Tolerance
The tolerance to use for ballistic simulations.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited