SmartRefresher constructor

const SmartRefresher({
  1. Key? key,
  2. required RefreshController controller,
  3. Widget? child,
  4. Widget? header,
  5. Widget? footer,
  6. bool enablePullDown = true,
  7. bool enablePullUp = false,
  8. VoidCallback? onRefresh,
  9. VoidCallback? onLoading,
  10. DragStartBehavior? dragStartBehavior,
  11. bool? primary,
  12. double? cacheExtent,
  13. int? semanticChildCount,
  14. bool? reverse,
  15. ScrollPhysics? physics,
  16. Axis? scrollDirection,
  17. ScrollController? scrollController,
  18. bool? enableSmartPreload,
})

创建一个带有下拉刷新和上拉加载功能的组件

必填参数

  • controller:控制刷新和加载状态的控制器,不能为空

核心参数

  • child:刷新内容组件
  • enablePullDown:是否启用下拉刷新,默认为 true
  • enablePullUp:是否启用上拉加载,默认为 false
  • onRefresh:下拉刷新回调函数
  • onLoading:上拉加载回调函数

指示器参数

  • header:自定义头部刷新指示器
  • footer:自定义底部加载指示器

滚动相关参数(复制自 ScrollView):

  • scrollDirection:滚动方向
  • reverse:是否反向滚动
  • scrollController:滚动控制器
  • primary:是否使用 primary scroll controller
  • physics:滚动物理效果
  • cacheExtent:缓存区域大小
  • semanticChildCount:语义化子组件数量
  • dragStartBehavior:拖动开始行为

使用注意

  • 如果 child 继承自 ScrollView,内部会获取其 slivers 并添加 header 和 footer
  • 否则,会将 child 包装到 SliverToBoxAdapter 中
  • 如果 child 内部包含可滚动组件,请考虑转换为 Sliver 并使用 CustomScrollView,或使用 builder 构造函数
  • 对于 AnimatedList、RecordableList 等特殊组件,建议使用 builder 构造函数

Implementation

const SmartRefresher(
    {super.key,
    required this.controller,
    this.child,
    this.header,
    this.footer,
    this.enablePullDown = true,
    this.enablePullUp = false,
    this.onRefresh,
    this.onLoading,
    this.dragStartBehavior,
    this.primary,
    this.cacheExtent,
    this.semanticChildCount,
    this.reverse,
    this.physics,
    this.scrollDirection,
    this.scrollController,
    this.enableSmartPreload})
    : builder = null;