PackageTrack
Sign in Get early access

pull_to_refresh

a widget provided to the flutter scroll component drop-down refresh and pull up load.

2.0.0 136K downloads/mo #997 most downloaded on pub.dev peng8350/flutter_pulltorefresh

What this package is like to depend on

Last release 5 years ago

no release in 18 months

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 52 of 52 stable releases

Nothing withdrawn

no release was ever pulled

8 years old

54 releases · first in 2018

0 releases in the last 12 months

see the full history below

Release timeline

54 releases · May 2018 to May 2021
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 54
  1. 2.0.0 07 May 2021
    Release notes

    Breaking Changes:

    • Remove onOffsetChange in SmartRefresher,autoLoad in RefreshConfiguration,scrollController in RefreshController
    • add argument to onTwoLevel(callback when closed)

    features

    • migrate null-safety
    • add needCallback in requestRefresh and requestLoading for avoiding the callback of onRefresh or onLoading

    Bug fix

    • In NestedScrollView+ClampingScrollPhysics(Android ScrollBehaviour),header can be seen when fling to top.
    • unMounted widget used crash error when fast rebuild in requestRefresh
    • fix sliverRefreshBody layoutSize instead of -0.001,it will crash error when viewportMainAxis=0

    Other

    • Add assert to avoid invalid usage
    Open source →
    Release notes

    Breaking Changes:

    • Remove onOffsetChange in SmartRefresher,autoLoad in RefreshConfiguration,scrollController in RefreshController
    • add argument to onTwoLevel(callback when closed)

    features

    • migrate null-safety
    • add needCallback in requestRefresh and requestLoading for avflutoiding the callback of onRefresh or onLoading

    Bug fix

    • In NestedScrollView+ClampingScrollPhysics(Android ScrollBehaviour),header can be seen when fling to top.
    • unMounted widget used crash error when fast rebuild in requestRefresh
    • fix sliverRefreshBody layoutSize instead of -0.001,it will crash error when viewportMainAxis=0

    Other

    • Add assert to avoid invalid usage
    Open source →
  2. 1.6.5 11 Apr 2021
    Release notes
    • fix check full page logic.
    • fix crash "locking up a deactive widget is unsafe".
    Open source →
    Release notes
    • fix check full page logic.
    • fix crash "locking up a deactive widget is unsafe".
    Open source →
  3. 1.6.4 19 Jan 2021
    Release notes
    • fix error crash by deprecated function removed
    • add extra ScrollView reference parameter
    Open source →
    Release notes
    • fix error crash by deprecated function removed
    • add extra ScrollView reference parameter
    Open source →
  4. 1.6.4-nullsafety.1 11 Apr 2021 pre-release

    Nothing published for this version

  5. 1.6.4-nullsafety.0 19 Mar 2021 pre-release
    Release notes
    • add null safety
    Open source →
  6. 1.6.3 17 Nov 2020
    Release notes
    • fix bug:gesture disabled after refresh complete in an error refreshState
    • fix problem:Footer hide back suddenly(this cause by the flutter breaking change)
    • add vibrate option to enable vibrate when trigger onRefresh or onLoading
    • fix SmartRefresher key in mutiple widgets
    • add other languages
    Open source →
    Release notes
    • fix bug:gesture disabled after refresh complete in an error refreshState
    • fix problem:Footer hide back suddenly(this cause by the flutter breaking change)
    • add vibrate option to enable vibrate when trigger onRefresh or onLoading
    • fix SmartRefresher key in mutiple widgets
    • add other languages
    Open source →
  7. 1.6.2 21 Sep 2020
    Release notes
    • fix "_pendingDimenssion is not true" fatal error
    Open source →
    Release notes
    • fix "_pendingDimenssion is not true" error with the breaking change
    Open source →
  8. 1.6.1 25 Jul 2020
    Release notes
    • fix nestedSrollView requestRefresh error
    • fix NestedScrollView cast error
    • fix twice loading when no data return
    • reuse the state when update refreshController
    • add other language
    Open source →
    Release notes
    • fix NestedScrollView requetRefresh error
    • fix NestedScollView cast error
    • fix twiceloadng when no data return
    • add support for update refreshcontroller
    • add other language
    Open source →
  9. 1.6.0 21 Jun 2020
    Release notes
    • fix slow bounce back when load more too fast
    • fix footer renderError with reverse:true,behaviour return to 1.5.7
    • add check null in requestRefresh()
    • fix refreshText reverse error(ClassicHeader) when reverse:true
    Open source →
    Release notes
    • fix slow bounce back when load more too fast
    • fix footer renderError with reverse:true,behaviour return to 1.5.7
    • add check null in requestRefresh()
    • fix refreshText reverse error(ClassicHeader) when reverse:true
    Open source →
  10. 1.5.8 13 Jan 2020
    Release notes
    • fix breaking change crash error after flutter 1.13.6 upgrade
    • add other language
    • fix material header frequently setState slow down the performance
    • fix bug:loadFinish throw error when dispose widget(short time to trigger)
    • fix WaterDropMaterialHeader "color" invalid
    Open source →
    Release notes
    • fix breaking change crash error after flutter 1.13.6 upgrade
    • add other language
    • fix material header frequently setState slow down the performance
    • fix bug:loadFinish throw error when dispose widget(short time to trigger)
    • fix WaterDropMaterialHeader "color" invalid
    Open source →
  11. 1.5.7 11 Oct 2019
    Release notes
    • add three national language: French,Russian,...
    • fix endLoading logic error in callback
    • add enableLoadMoreWhenNoMoreData,enable switch to decide whether auto load more when footer state is noMore
    • fix requestRefresh callback onRefresh immediately
    Open source →
  12. 1.5.6 07 Sep 2019
    Release notes
    • add new feature:refresh localizations
    • The footer layout size should be added to calculate whether the Viewport is full of a screen
    • fix physics check error when theme use other platform
    • add topHitBoundary,bottomHitBoundary in RefreshConfiguration
    • move headerOffset from RefreshConfiguration,move to indicator setting
    • In Android systems,default change: fast fling will be stopped in 0 pixels
    • Optimized part indicator,auto attach primaryColor from Theme,text style adjust etc..
    • Optimize requestRefresh() and requestLoading(),avoid spring back when far from target point,add one parameter controll whether to move down or top
    Open source →
  13. 1.5.5 31 Aug 2019
    Release notes

    breaking change

    • add new canLoading state for footer
    • add canLoadingText,canLoadingIcon,completeDuration in footer
    • enableLoadingWhenFailed default value change to true
    • shouldFollowContentWhenNotFull: in noMore state default return true

    twoLevel

    • add TwoLevelHeader,reduce the difficulty of using the second floor function

    Bug fix

    • twoLevel bug: fix viewportDimenssion use error,which lead to height dynamic error
    • fix underScroll bug when footer is noMore state or hideWhenNotFull=true and viewport not full one screen in Android
    • NeverScrollPhysics is ignored,when passing NeverScrollPhysics,it should disable scroll

    other

    • add enableBallisticLoad(same with enableBallisticRefresh) in RefreshConfiguration
    • add requestTwoLevel method in RefreshController
    • add endLoading,readyToLoad for CustomFooter
    • add ScrollView's props to SmartRefresher,mostly for SingleChildView not ScrollView
    Open source →
  14. 1.5.4 12 Aug 2019
    Release notes
    • add new RefreshConfiguration constructor "copyAncestor"
    • fix bug 1: when !enablePullDown && !enablePullUp crash error
    • fix bug 2: "pixels" call on null when refresh completed and ready to springback In a very short time and disposed
    • enable "primary" attr working,Avoiding clicking on the status bar to cause scrolling to the top in some stiuation
    • requestRefresh() and requestLoading() change to return a future
    Open source →
  15. 1.5.3 04 Aug 2019
    Release notes
    • add new indicator: BezierCircleHeader
    • change spring default value ,make it fast and smooth
    • fix cast ScrollPosition error with NestedScrollView
    Open source →
  16. 1.5.2 28 Jul 2019
    Release notes
    • change maxOverScrollExtent default to 60
    • maxScrollExtent should subtract layoutExtent instead of boxExtent when indicator not floating
    • add SmartRefresher builder constructor for some special use stage
    • when child is not extends scrollView,it should convert height to viewport's height when child's height is infite,such as PageView,emptyWidget with Center,else it will use LayoutBuilder get height
    • header,footer now unlimit the type ,convert to widget,but only sliver widget,Considering the problem of combined indicators
    • CustomHeader,CustomFooter expose inner indicator event
    • resetNoData should only can work when footer indicator is noMore state
    • fix twolevel and refresh prior problem
    Open source →
  17. 1.5.1 24 Jul 2019
    Release notes
    • add api docs in code
    • add test to prevent previous bugs as much as possible
    • enableScrollWhenCompleted default value change to false,when header spring back,doesn't allow to scroll by gesture
    • improve enableScrollWhenCompleted safety ,fix trigger disable scroll times error
    • maxScrollExtent should subtract boxExtent when floating(indicator layoutExtent != 0) or not
    • maxOverScrollExtent default change to 30.0 in Android,maxUnderScrollExtent default change to 0.0 in Android
    • Fix footer onClick not working when click near footer edge
    • fix canTwoLevel text showing in other twoLevel state
    • when enablePullDown= false && enableTwoLevel = true,it should add header into Viewport
    • remove reverse in some header indicators,inner auto check direction,no need to pass paramter
    • fix render error in footer when asix = Horizontal & reverse = true
    Open source →
  18. 1.5.0 13 Jul 2019
    Release notes

    Fix a Big Bug in FrontStyle:When overScroll(pixels <0.0),it shouldn't be disabled gesture
    add shouldFollowContentWhenNotFull
    add support to scrollable widget
    Fix ignore reverse load more paintOrigin issue
    change hideFooterWhenNotfull default value to false
    update header default releaseIcon and footer idle default Icon

    Open source →
    Release notes
    • Fix a Big Bug in FrontStyle:When overScroll(pixels <0.0),it shouldn't be disabled gesture
    • add shouldFollowContentWhenNotFull
    • add support to scrollable widget
    • Fix ignore reverse load more paintOrigin issue
    • change hideFooterWhenNotfull default value to false
    • update header default releaseIcon and footer idle default Icon
    Open source →
  19. 1.4.9 09 Jul 2019
    Release notes
    • Fix MaterialClassicHeader,WaterDropHeader some err
    • Optimze WaterdropMaterial
    • remove hit top in clamping physics
    • add springDescrition,dragSpeedRatio in RefreshConfiguration
    • fix BehindStyle layoutExtent error
    Open source →
  20. 1.4.8 05 Jul 2019
    Release notes
    • provide three load more style:ShowAlways,HideAlways,ShowWhenLoading
    • add linkFooter
    • Fix Bug: requestRefresh() interupted when physics =Clamping && offset !=0
    • Fix Bug: When viewport not enough onepage ,pull up will change the state to loading,but not callback onLoading
    • revert change before:SmartRefresher change Stateless,Fix position may be null in some stiuations
    • add enableScrollWhenRefreshCompleted,enableBallisticRefresh,enableLoadingWhenFailed bool in RefreshConfiguration
    • enable footerTriggerdistance pass Negative
    Open source →
  21. 1.4.7 02 Jul 2019
    Release notes

    new Feature:

    • Add twoLevel refresh feature
    • Add linkHeader to link other place header

    SmartRefresher:

    • Remove headerInsertIndex(only first sliver)
    • Fix ignore padding attr when child is BoxScrollView
    • add enableTwoLevel,onTwoLevel attr

    RefreshConfiguration:

    • add enableScrollWhenTwoLevel,closeTwoLevelDistance for twoLevel setting

    RefreshController:

    • Add refreshToidle, twoLevelComplete new api
    • Add initalRefreshStatus,initalLoadStatus new parameter setting default value

    ClassicalIndicator:

    • remove decoration
    • add outerBuilder replace decoration
    • add other attr for twoLevel

    Bug Fix:

    • Fix clicking footer trigger loading when no more state
    • footer indicator shouldn't hide when state in noMore,failed and not full in one page

    other:

    • Remove asSliver usage in all indicators(no need to use,only support first sliver)
    • make indicator auto fit boxSize,just like SliverToBoxAdapter
    Open source →
  22. 1.4.6 25 Jun 2019
    Release notes
    • Add horizontal refresh support
    • Fix 1.4.5 default physics Bug in Android simulation
    • Fix Problem: when enablePullDown or enablePullUp = false,it still can overScroll or underScroll when use ClampingScrollPhysics
    • Add maxOverScrollExtent and maxUnderScrollExtent in RefreshConfiguration
    Open source →
  23. 1.4.5 18 Jun 2019
    Release notes
    • Remake FrontStyle implements principle,Make it close to the first three styles,Fix some small problems also: 1.when tap StatusBar,it will trigger refresh instead of scroll to top 2.It seems odd to set aside 100 heights in front of scrollOffset for FrontStyle 3.When hideWhenNotFull = false, dragging to pull down will cause loading together

    • Remake RefreshPhysics,Simpify code,child support physics setting now.

    • ClassicIndicator default refreshingIcon:in iOS use ActivityIndicator,in Android use CircularProgressIndicator

    Open source →
  24. 1.4.4 11 Jun 2019
    Release notes
    • Fix Bug:Multiples ScrollPositions shared one ScrollController,when calling controller.requestRefresh cause refresh together( such as keepAlive Widget )
    • When the user Dragging ScrollView(pull up), disable make it change to loading state
    • Add one new LoadStatus:failed(provide click to retry loading)
    • Fix some defaultIcon:noMoreIcon default Invisible
    Open source →
  25. 1.4.3 07 Jun 2019
    Release notes
    • change "child" attr limit type from ScrollView to Widget
    Open source →
  26. 1.4.2 06 Jun 2019
    Release notes
    • Improving hideWhenNotFull judgment mechanism
    • Fix triggerDistance error after 1.4.0-1.4.1
    Open source →
  27. 1.4.1 04 Jun 2019
    Release notes
    • Remove isNestedWrapped(deprecated from 1.3.8)
    • Add headerInsertIndex attr in SmartRefresher
    • Rename IndicatorConfiguration to RefreshConfiguration
    • Move some attr from Indicator to RefreshConfiguration:offset,skipCanRefresh,triggerDistance,autoLoad,hideWhenNotFull
    • Add decoration for classicIndicator(both header and footer)
    • Add Fade effect for WaterDropHeader when dismiss
    • Simplify reverse operation,Add MaterialClassicHeader,WaterDropMaterialHeader reverse feature
    Open source →
  28. 1.4.0 29 May 2019
    Release notes
    • Fix one serious Bug after 1.3.8 upgrade to 1.3.9:enablePullDown = false throw error
    Open source →
  29. 1.3.9 27 May 2019
    Release notes
    • Avoid inner inject padding by buildSlivers in child(ListView,GridView)
    • Add initialRefresh in RefreshController(when you need to requestRefresh in initState)
    • Fix exception RefreshBouncingPhysics velocity value
    • Add IndicatorConfiguration for build indicator for subtrees SmartRefresher
    • Add SkipCanRefresh,CompleteDuration attr in header
    • Fix trigger more times loading when no data come in and too fast loadComplete
    • remove center,anchor in CustomScrollView to Compatible with old versions
    Open source →
  30. 1.3.8 24 May 2019
    Release notes
    • Temporary fix deadly bug: PrimaryScrollController cannot shared by multiple Indicators
    Open source →
  31. 1.3.7 24 May 2019
    Release notes
    • Adding an asSlivers constructor can be inserted into slivers as a Sliver
    • Fix FrontStyle cannot support dynamic change enablePullDown
    • Fix FrontStyle cannot enter refresh state when init
    • Optimize indicator internal code to avoid locking widgets
    • Fix iOS click status cannot roll back without ScrollController in child
    • Fix one ignored situation after finish refresh -> completed(not in visual range)
    Open source →
  32. 1.3.6 21 May 2019
    Release notes
    • Fix NestedScrollView issue in 1.3.5
    • decrease default triggerDistance from 100.0 to 80.0
    • improve dragging scrolling speed of Front Style
    • Add offset attr in Front Style
    Open source →
  33. 1.3.5 20 May 2019
    Release notes
    • Add hideWhenNotFull bool to disable auto hide footer when data not enough one page
    • Add one new RefreshStyle:Front(just like RefreshIndicator)
    • Fix a bug: When the head overflows the view area, there is no clipping operation
    • Add material header(two indicator for FrontStyle)
    • Remove enableOverScroll
    Open source →
  34. 1.3.3 11 May 2019
    Release notes
    • Fixed the request Refresh problem: Sometimes it takes two times to be effective
    • Add child key support
    • Fix Bug:Pull-down triggers need to be pulled down more distances to trigger
    • Add resetNoData to resume footer state to idle
    Open source →
  35. 1.3.2 08 May 2019
    Release notes
    • Fix WaterDropHeader some attributes invalid
    • Fix enablePullUp and enablePullDown Dynamic set
    • implements auto hide FooterView when less than one page,no need to set enablePullUp to false
    • improve safety after disposed
    Open source →
  36. 1.3.1 06 May 2019
    Release notes
    • Add onClick CallBack for LoadIndicator
    • Fix enablepullUp or down invalid
    • Fix error Loading after 1.3.0 updated
    Open source →
  37. 1.3.0 06 May 2019
    Release notes

    Total

    • Support reverse ScrollView
    • Remove RefreshConfig,LoadConfig,Move to indicator setting
    • Add isNestWrapped to Compatible NestedScrollView
    • replace headerBuilder,footerBuilder attribute to header,footer
    • Separate header and footer operations:onRefresh and onLoading Callback,RefreshStatus is separated into RefreshStatus.LoadStatus
    • Fix Bug: twice loading (the footer state change before the ui update)

    RefreshController

    • Remove sendBack method,replaced by LoadComplete,RefreshComplete ,RefreshFailed,LoadNoData
    • Separate refresh and load operations
    • Add dispose method for Safety in some situation

    Indicator

    • Use another way to achieve drop-down refresh
    • Add drop-down refresh indicator style(Follow,UnFollow,Behind)
    • Add WaterDropIndicator,CustomIndicator
    • Make Custom Indicator easily
    Open source →
  38. 1.2.0 31 Mar 2019
    Release notes
    • Fixed the problem that ScrollController was not applied to internal controls
    • Optimize RefreshController
    • RefreshController changed to required now
    • Add feature:reuqestRefresh can jumpTo Bottom or Top
    • Fix problem: Refresh can still be triggered when ScrollView is nested internally
    • Remove rendered twice to get indicator height,replaced by using height attribute in Config
    • change RefreshStatus from int to enum
    Open source →
  39. 1.1.6 25 Oct 2018
    Release notes
    • Fix Compile error after flutter update
    Open source →
  40. 1.1.5 26 Jun 2018
    Release notes
    • Fix problem of offsetChange
    • Fix CustomScrollView didn't work
    • Fix refreshIcon not reference in ClassialIndicator
    Open source →
  41. 1.1.4 02 Jun 2018
    Release notes
    • Fix enableOverScroll does not work
    • Add default IndicatorBuilder when headerBuilder or footerBuilder is null
    • Fix cannot loading when user loosen gesture and listview enter the rebounding
    Open source →
  42. 1.1.3 29 May 2018
    Release notes
    • Fix contentList's item cannot be cached,Remove shrinkWrap,physics limit
    • Fix onOffsetChange callback error,In completion, failure, refresh state is also callback
    • Add unfollowIndicator implement in Demo(Example3)
    Open source →
  43. 1.1.2 23 May 2018
    Release notes
    • Fix Bug:Refreshing the indicator requires multiple dragging to refresh
    • Fix ClassialIndicator syntax errors and display status when no data is added.
    Open source →
  44. 1.1.1 21 May 2018
    Release notes
    • Make triigerDistance be equally vaild for LoadWrapper
    • Add enableOverScroll attribute
    Open source →
  45. 1.1.0 18 May 2018
    Release notes

    Notice: This version of the code changes much, Api too

    • Transfer state changes to Wrapper of indicator to reduce unnecessary interface refresh.
    • No longer using Refreshmode or LoadMode,replaced int because the state is hard to determine.
    • Now support the ScrollView in the reverse mode
    • The indicators are divided into two categories, loadIndicator and refreshIndicator, and the two support header and footer
    • provided a controller to invoke some essential operations inside.
    • Move triggerDistance,completeTime such props to Config
    • Add ClassicIndicator Convenient construction indicator
    Open source →
  46. 1.0.8 12 May 2018
    Release notes
    • Reproducing bottom indicator, no more manual drag to load more
    • Control property values change more,Mainly:1.onModeChange => onRefreshChange,onLoadChange, 2.Add enableAutoLoadMore,3.Remove bottomVisiableRange
    Open source →
  47. 1.0.7 11 May 2018
    Release notes
    • Fix Bug1: The use of ListView as a container to cause a fatal error (continuous sliding) when the bottom control is reclaimed, using the SingleChildScrollView instead of preventing the base control from recovering many times from the exception
    • Fix Bug2: When the user continues to call at the same time in the two states of pull-down and drop down, the animation has no callback problem when it enters or fails.
    Open source →
  48. 1.0.6 10 May 2018
    Release notes
    • Use Material default LoadingBar
    • Add a bool paramter to onOffsetChange to know if pullup or pulldown
    • Fix Bug: when pulled up or pull-down, sizeAnimation and IOS elasticity conflict, resulting in beating.
    Open source →
  49. 1.0.5 08 May 2018
    Release notes
    • Remove headerHeight,footerHeight to get height inital
    • Make footer stay at the bottom of the world forever
    • replace idle to idel(my English mistake)
    • Fix defaultIndictor error Icon display
    Open source →
  50. 1.0.4 07 May 2018
    Release notes
    • Update README and demo
    Open source →
  51. 1.0.3 04 May 2018
    Release notes
    • Fix error Props
    • Add interupt Scroll when failure status
    Open source →
  52. 1.0.2 04 May 2018
    Release notes
    • Add Failed RefreshMode when catch data failed
    • ReMake Default header and footer builder
    • Replace RefreshMode,loadMode to refreshing,loading
    • Replace onModeChange to onRefresh,onLoadMore
    Open source →
  53. 1.0.1 04 May 2018
    Release notes
    • Remove bottomColor
    Open source →
  54. 1.0.0 04 May 2018
    Release notes
    • initRelease
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive