scrollview_observer
A widget for observing data related to the child widgets being displayed in a ScrollView.
1.27.1
129K downloads/mo
#1018 most downloaded on pub.dev
fluttercandies/flutter_scrollview_observer
What this package is like to depend on
Last release 2 days ago
22 Aug 2026
Release timing varies
gaps range from 8 days to 5 months
Nearly every release is documented
notes for 57 of 57 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
57 releases · first in 2022
3 releases in the last 12 months
see the full history below
Release timeline
57 releases · May 2022 to Aug 2026Releases
latest 57-
1.27.122 Aug 2026Release notes
Open source →What's Changed
- fix(ObserverController): correct the scrolling clamped by an outdated scrollExtent by @LinXunFeng in #151
- ci(assign-issue): grant issues write permission to GITHUB_TOKEN by @LinXunFeng in #152
- ci(workflows): pin actions to hashes and restrict token permissions by @LinXunFeng in #153
Full Changelog: 1.27.0...1.27.1
Release notes
Open source →- ObserverController
- Correct the scrolling clamped by an outdated
scrollExtentby @LinXunFeng in #150.
- Correct the scrolling clamped by an outdated
-
1.27.031 May 2026Release notes
Open source →What's Changed
- ChatScrollObserver
- Record
sliverContextand support conditional shrink wrap observation in standby by @LinXunFeng.
- Record
- ObserverWidget
- Add
cancelOnceObserveNotificationBubblingto control notification bubbling by @LinXunFeng.
- Add
Full Changelog: 1.26.3...1.27.0
Release notes
Open source →- ChatScrollObserver
- Record
sliverContextand support conditional shrink wrap observation in standby by @LinXunFeng.
- Record
- ObserverWidget
- Add
cancelOnceObserveNotificationBubblingto control notification bubbling by @LinXunFeng.
- Add
- Others
- Add return types and type annotations to satisfy lint rules by @LinXunFeng.
- ChatScrollObserver
-
1.26.305 Jan 2026Release notes
Open source →What's Changed
- ObserverWidget
- Fix incorrect tag comparison in
_checkTagChangeby @LinXunFeng in #143.
- Fix incorrect tag comparison in
- ObserverController
- Add missing type annotations by @LinXunFeng.
Full Changelog: 1.26.2...1.26.3
Release notes
Open source →- ObserverWidget
- Fix incorrect tag comparison in
_checkTagChangeby @LinXunFeng in #143.
- Fix incorrect tag comparison in
- ObserverController
- Add missing type annotations by @LinXunFeng.
- ObserverWidget
-
1.26.211 Aug 2025Release notes
Open source →What's Changed
- ObserverUtils
- Refine the logic of
calcAnchorTabIndexmethod by @LinXunFeng.
- Refine the logic of
Full Changelog: 1.26.1...1.26.2
Release notes
Open source →- ObserverUtils
- Refine the logic of
calcAnchorTabIndexmethod by @LinXunFeng.
- Refine the logic of
- ObserverUtils
-
1.26.117 May 2025Release notes
Open source →What's Changed
- ChatScrollObserver
- Refine the logic of
standbyby @LinXunFeng.
- Refine the logic of
Full Changelog: 1.26.0...1.26.1
- ChatScrollObserver
-
1.26.023 Mar 2025Release notes
Open source →What's Changed
- NestedScrollUtil
- Add await support for
animateToandjumpTomethods by @LinXunFeng.
- Add await support for
Full Changelog: 1.25.2...1.26.0
Release notes
Open source →- NestedScrollUtil
- Add await support for
animateToandjumpTomethods by @LinXunFeng.
- Add await support for
- NestedScrollUtil
-
1.25.214 Mar 2025Release notes
Open source →What's Changed
- ObserverWidget
- Fix "ObserverWidgetState was used after being disposed" by @LinXunFeng in #120 and #123.
Full Changelog: 1.25.1...1.25.2
- ObserverWidget
-
1.25.102 Feb 2025Release notes
Open source →What's Changed
- ObserverWidget
- Fix observation result inaccurate by @LinXunFeng in #113.
Full Changelog: 1.25.0...1.25.1
Release notes
Open source →- ObserverWidget
- Fix observation result inaccurate by @LinXunFeng in #113.
- ObserverWidget
-
1.25.024 Jan 2025Release notes
Open source →What's Changed
- ChatScrollObserver
- Add
customAdjustPosition.
- Add
Above features are implemented by @LinXunFeng.
Full Changelog: 1.24.0...1.25.0
- ChatScrollObserver
-
1.24.024 Nov 2024Release notes
Open source →What's Changed
- ObserveModel
- Add
displayingChildModelMap.
- Add
- ChatScrollObserver
- Add
customAdjustPositionDelta.
- Add
Above features are implemented by @LinXunFeng.
Full Changelog: 1.23.0...1.24.0
Release notes
Open source →- ObserveModel
- Add
displayingChildModelMap.
- Add
- ChatScrollObserver
- Add
customAdjustPositionDelta.
- Add
- ObserveModel
-
1.23.003 Nov 2024 -
1.22.013 Oct 2024 -
1.21.231 Aug 2024 -
1.21.126 Aug 2024Release notes
Open source →- ObserverCore
- Improve the logic of
handleListObserveandhandleGridObserve.
- Improve the logic of
- ObserverCore
-
1.21.030 Jun 2024Release notes
Open source →- ObserverController
- Add
onPrepareScrollToIndexforjumpToandanimateTo.
- Add
- NestedScrollUtil
- Add
jumpToandanimateTomethods.
- Add
- ObserverController
-
1.20.019 May 2024Release notes
Open source →- ObserverController
- Add
observeIntervalForScrollingto set the minimum amount of time to wait for firing observe callback during scrolling.
- Add
- ObserverUtils
- Improve the logic of
isDisplayingSliverInViewportmethod.
- Improve the logic of
- ScrollViewOnceObserveNotificationResult
- Add
observeViewportResultModel.
- Add
- ChatScrollObserver
- Add
ChatScrollObserverRefIndexType. - Add
refIndexTypeto specify the role ofrefItemIndexandrefItemIndex.
- Add
- Slivers
- Add
SliverObserveContext.
- Add
- ObserveDisplayingChildModelMixin
- Add
visibleFractionandvisibleMainAxisSize.
- Add
- ObserverController
-
1.19.116 Mar 2024Release notes
Open source →- ListViewObserver
- Support
SliverVariedExtentListin 74.
- Support
- ChatScrollObserver
- Safely obtain the
constraintsof RenderSliver.
- Safely obtain the
- ObserverController
- Adapt to scenes where
CustomScrollViewspecifiescenter.
- Adapt to scenes where
- ListViewObserver
-
1.19.010 Dec 2023Release notes
Open source →- SliverViewObserver
- Add
customOverlapproperty.
- Add
- NestedScrollUtil
- To better support
NestedScrollView.
- To better support
- ObserverCore
- Improve the judgment logic of whether the sliver is visible.
- ObserverController
- Adjust the controller to be modifiable.
- SliverViewObserver
-
1.18.225 Nov 2023Release notes
Open source →- ChatScrollObserver
- Fix keeping position not working by @LinXunFeng in #64
- ChatScrollObserver
-
1.18.116 Nov 2023Release notes
Open source →- Add a check to determine whether the BuildContext is mounted by @LinXunFeng in #62
-
1.18.011 Nov 2023Release notes
Open source →- ObserverController
- Add some scrolling task notifications extending from
ObserverScrollNotification. - The
jumpTomethod andanimateTomethod supportawait. - Add
isForbidObserveCallbackproperty. - Add
isForbidObserveViewportCallbackproperty.
- Add some scrolling task notifications extending from
- ObserverController
-
1.17.029 Oct 2023Release notes
Open source →- ObserverController
- The parameter
isFixedHeightin thejumpTomethod andanimateTomethod supports GridView and supports ScrollView built by third-party package by @percival888 in #52.
- The parameter
- ObserverController
-
1.16.517 Sep 2023Release notes
Open source →- ObserverWidget
- Improve the processing logic of scroll notification when scrolling with the mouse wheel is not smooth by @qiangjindong in #48.
- ChatScrollObserver
- Update
isShrinkWraponce during initialization by @LinXunFeng. #47
- Update
- ObserverController
- Fix unable to jump when sliver is too far away and has no any child by @LinXunFeng. #45
- Fix continuous page turning due to incorrect index by @LinXunFeng.
- ObserverWidget
-
1.16.430 Aug 2023 -
1.16.326 Aug 2023Release notes
Open source →- Observation Model
- Add viewport property to observation model.
- Correct the calculation logic of some values to adapt to the scene of multiple slivers.
- Observation Model
-
1.16.226 Aug 2023 -
1.16.117 Aug 2023 -
1.16.013 Aug 2023Release notes
Open source →- ObserverController
dispatchOnceObservemethod supports directly getting observation result.
- ObserverController
-
1.15.019 Jul 2023 -
1.14.212 Jul 2023 -
1.14.110 Jul 2023 -
1.14.011 Jun 2023Release notes
Open source →- ChatScrollObserver
- Support for keeping position of generative messages (eg: ChatGPT)
- ChatScrollObserver
-
1.13.204 Jun 2023Release notes
Open source →- ObserverWidget
- Fix getting bad observation result on web. Thanks to @rmasarovic for the test in #31
- ObserverWidget
-
1.13.103 Jun 2023Release notes
Open source →- ObserverCore
- Fix no getting all child widgets those are displayed when there are separators in
ListView. #31
- Fix no getting all child widgets those are displayed when there are separators in
- ObserverUtils
- Safely call
findRenderObjectmethod.
- Safely call
- ObserverCore
-
1.13.027 May 2023Release notes
Open source →- ObserverUtils
- The
calcAnchorTabIndexmethod supports GridView.
- The
- ObserverCore
- Refine the logic of
handleListObservemethod andhandleGridObservemethod.
- Refine the logic of
- ObserverUtils
-
1.12.021 May 2023Release notes
Open source →- ObserverWidget
- Support custom observation object and observation logic.
- Refine the logic for finding the first sliver in viewport.
- ObserverWidget
-
1.11.014 May 2023Release notes
Open source →- ChatScrollObserver
- Support inserting multiple messages at once.
- ObserverWidget
GridViewObserveris compatible with waterfall flow.SliverViewObserversupports observation of viewport.
- ChatScrollObserver
-
1.10.102 Mar 2023Release notes
Open source →- ObserverController
- fix: targetOffset calculate may be negative by @zeqinjie in #21.
- ObserverController
-
1.10.016 Feb 2023Release notes
Open source →- ObserverController
- Improve
[_calculateTargetLayoutOffset]logic. - The
jumpTomethod andanimateTomethod both add a parameter[padding].
- Improve
- ObserverIndexPositionModel
- Add property
[padding].
- Add property
- ObserverController
-
1.9.207 Feb 2023 -
1.9.127 Dec 2022Release notes
Open source →- ObserverController
- Modify offset calculation logic in method
[_calculateTargetLayoutOffset].
- Modify offset calculation logic in method
- ObserverController
-
1.9.004 Dec 2022Release notes
Open source →- ObserverWidget
- Add property
[autoTriggerObserveTypes]and property[triggerOnObserveType].
- Add property
- ObserverController
- Method
[dispatchOnceObserve]adds parameter[isForce].
- Method
- ObserverWidget
-
1.8.029 Nov 2022Release notes
Open source →- Scrolling to the specified index location
- Supports initializing the index position of the scrollView.
- Deprecated
[clearIndexOffsetCache], please use[clearScrollIndexCache]instead.
- Scrolling to the specified index location
-
1.7.024 Nov 2022Release notes
Open source →- ChatScrollObserver
- Add the property
[fixedPositionOffset]. - Deprecated
[ChatObserverClampinScrollPhysics], please use[ChatObserverClampingScrollPhysics]instead.
- Add the property
- ChatScrollObserver
-
1.6.210 Nov 2022 -
1.6.103 Nov 2022 -
1.6.031 Oct 2022 -
1.5.122 Oct 2022 -
1.5.029 Sep 2022Release notes
Open source →- ChatScrollObserver
- Quickly implement the chat session page effect.
- Scrolling to the specified index location
- Add the property
[cacheJumpIndexOffset].
- Add the property
- ChatScrollObserver
-
1.4.027 Aug 2022Release notes
Open source →- Scrolling to the specified index location
- New
alignmentparameter in thejumpToandanimateTomethods. - Fixed a bug that caused scrolling to the first child to jitter when using
offsetparameter.
- New
- Scrolling to the specified index location
-
1.3.021 Aug 2022Release notes
Open source →- Scrolling to the specified index location supports the
SliverPersistentHeader. - Add
ObserverUtils- Method
calcPersistentHeaderExtent: Calculate current extent ofRenderSliverPersistentHeader. - Method
calcAnchorTabIndex: Calculate the anchor tab index.
- Method
- Scrolling to the specified index location supports the
-
1.2.007 Aug 2022Release notes
Open source →- The
jumpToandanimateTomethods add anisFixedHeightparameter to optimize performance when the child widget is of fixed height - Add the properties
[leadingMarginToViewport]and[trailingMarginToViewport] - Support mixing usage of
SliverListandSliverGrid
- The
-
1.1.019 Jul 2022 -
1.0.103 Jul 2022 -
1.0.003 Jul 2022Release notes
Open source →- Implements a way to use without sliver [BuildContext]
- Change [onObserve] to [onObserveAll], and add a new [onObserve] callback to listen for changes in the child widget display of the first sliver
- Add [ObserverController]
-
0.1.005 Jun 2022 -
0.0.128 May 2022