[scrollable_positioned_list] expose ScrollPosition as unstableScrollPosition in ScrollOffsetController #535
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR exposes
_scrollableListState.primary.scrollController.position
asunstableScrollPosition
. This allows developers to use theScrollPosition
of the ScrollablePositionedList to make local jumps eg. jump to 100px from the current index or jump 100px from the current position. The documentation makes clear that position.jumpTo does not work the same way that it does in a ListView. The usage I have in mind for position is the following.Usage
The methods/fields I personally need from
position
aredrag
,hold
,jumpTo
andpixels
. I feel at that point it makes sense to just expose the ScrollPositon and let developers use it at their own risk. Note that the current method inScrollOffsetController
,animateScroll
, also falls to the same issues around only being relative to the current origin of the list. TheI am also fine with only exposing
drag
,hold
andrelativeJumpTo
which would look like this:I also made the following widget to manually test the functionality of the
JumpTo
method (as well as the unit test I added)jumpTo test
I'd like to receive input on this PR and what other options there are to achieve this functionality if exposing the ScrollPosition is not an option. Simply allowing the developer to provide their own
ScrollController
would work as well. If that is better I'm fine with that too.Related Issues
#151
#293
#415
#460
#487
#513
#515
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes (
[x]
). This will ensure a smooth and quick review process.flutter test
pass.flutter analyze
does not report any problems on my PR.