flutter_reorderable_grid_view 5.5.2
flutter_reorderable_grid_view: ^5.5.2 copied to clipboard
Enables animated GridViews when updating children or when trying to reorder them by using drag and drop.
5.5.2 #
đ Bug Fixes
- fixed an issue where reordering stopped working after changing device orientation
đââī¸ Improvements
- Updated not recommended
MediaQuerycalls:MediaQuery.of(context).sizeâMediaQuery.sizeOf(context)MediaQuery.of(context).orientationâMediaQuery.orientationOf(context)
- Thanks to
hajajmaorfor reporting this! (#163)
5.5.1 #
5.5.0 #
đââī¸ Improvements
- default value of
automaticScrollExtentupdated to150.0(was previously80.0) - updated
READMEto clarify when to use aScrollController(see #152) - general code refactoring
- added new parameter
onReorderedPositions- similar to
onReorder, but allows you to handle reordering logic yourself - thanks to
FaFrefor the PR (#153)
- similar to
đ Bug Fixes
- fixed an issue in
Reorderable.builderwhen removing children- the error occurred because reordering finished with items outside the index
- fixed by adding a new parameter
itemCounttoReorderableBuilder.builder - this value ensures only rendered children are used for reordering
- thanks to
yoyoNTNUfor identifying the issue (#155)
5.4.1 #
đ Bug Fixes
- when dragging an item to a
DragTargetwidget, theonDragEndcallback was not being called, causing the reorder process to remain incomplete- fixed it by using the
onDragCompletedcallback ofDraggable - added a new example file:
drag_target_example.dart
- fixed it by using the
5.4.0 #
đ Bug Fixes
- dragging is now restricted to a single contact at a time
- previously, initiating a drag with multiple contacts was possible, but only one contact would be dragged
- this issue has been resolved to prevent confusion
- special thanks to
wuhangandroidandGloomy699(#57)
- Fixed issue with
longPressDelayset toDuration.zeroorenableLongPressset tofalse(#141)- Previously, child widgets with an
onTapfunction wouldn't respond - This should now work correctly, but note that using a delay of less than 55ms may still cause the issue
- Previously, child widgets with an
âī¸ New Features
- added a generic type for
ReorderableBuilder- eliminates the need to cast
reorderListFunctioninonReorder - special thanks to
KevenMelo(#142)
- eliminates the need to cast
âšī¸ Information
- added a new example for
DefaultTabController- it was unclear how the
ReorderableBuilderworks withDefaultTabControllerandTabBarView - special thanks to
isenbjandemavgl(#78)
- it was unclear how the
5.3.2 #
đ Bug Fixes
- fixed reordering issue:
- reordering didn't work correctly after adding a new item
- special thanks to
OICQ469(#135)
- fixed fade in
- the fade in didn't appear when a new child was added
5.3.1 #
đ Bug Fixes
-
fixed
PageView.builderissues: -
resolved reordering issue with scrolling:
- fixed a bug where scrolling to the top while dragging and then back to the bottom caused issues with reordering children
- thanks to
davidmartos96for identifying this issue (#127)
-
fixed drag and drop after resizing:
- addressed an issue where drag and drop would stop working correctly after resizing the grid
- acknowledgements to
khjde1207for the report (#91)
5.3.0 #
âī¸ New Features
- added parameter
reverse- if your
GridViewuses the flagreverse, ensure to also use it forReorderableBuilder
- if your
- improved the scrolling behavior while dragging
5.2.0 #
âī¸ New Features
- enhanced the visual appearance of the feedback widget when starting a drag
- improved behavior when
enableLongPressis set tofalse:- previously, the feedback widget only appeared after moving the dragged widget
- now, the feedback starts immediately when pressing the widget, as
LongPressDraggableis consistently used whetherenableLongPressistrueorfalse - this change also deprecates
enableLongPress, as it's no longer needed. To achieve the same effect asenableLongPress = false, simply setlongPressDelaytoDuration.zero
đ Bug Fixes
- Fixed an issue where dragging didn't work correctly with
CarouselSlider(thanks tocharmoszâ Issue #118).- The solution ensures the scroll position of the
ScrollControlleris always used when it's added toReorderableBuilderand linked to a scrollable widget.
- The solution ensures the scroll position of the
5.1.0 #
- there were performance issues (Issue #107)
- because
setStatewas called many times, it rerendered all children - I improved it by only rendering the updated children when they are built
- this version can be used to test it
- because
5.0.1 #
đ Bug fix
- Dragging not working in release mode on Android (thanks to
shubham-gupta-16- Issue #105)- changed behavior of
ListenertoHitTestBehavior.deferToChild
- changed behavior of
5.0.0 #
This release introduces a complete overhaul of the package, delivering significant performance optimizations, bug fixes, and new features.
âī¸ New features
- Improved Reorderable.builder performance: Now only renders visible children, similar to GridView.builder, significantly enhancing performance
- Horizontal direction support (Issue #53):
GridViewnow supports both horizontal and vertical directions
- New
fadeInDurationparameter (Issue #68):- Default:
500ms - Controls the animation duration when a new child appears
- Default:
DraggableandLongPressDraggablenow supportdataattachment- New
onDraggedChildUpdatedcallback (thanks for the PR Bader-AI):- Called whenever a dragged child updates its position during dragging
- Avoid modifying children during this callback to prevent erratic behavior
- New
releasedChildDurationparameter:- Defines the duration for a child to settle into its new position after being released
- Default
150ms
- New
positionDurationparameter (thanks tonaderhezzy- Issue #94):- Adjusts the animation duration when a child's position changes (e.g., when adding/removing items)
- New
nonDraggableIndiciesparameter (thanks toBader-Alfor the PR #93):- Specifies indices of non-draggable items, though they remain movable while dragging other items
âĄī¸ Breaking Changes
onReorderfunction now includes a reorder callback that must be invoked within theonReorderhandler- This improves performance, especially when working with large lists
- Refer to the updated examples for guidance
onDragStartedandonDragEndcallbacks now include the index of the dragged child in their parameters
5.0.0-dev.10 #
đ Bug fix
- locked children were still draggable, now they are locked (thanks to
gmarizy- Issue #97)
5.0.0-dev.9 #
đ Bug fixes
- fixed issue when deleting the dragged child (thanks to
khjde1207- Issue #88)
âī¸ New features
- added parameter
positionDuration(thanks tonaderhezzy- Issue #94)- changes the animation duration when a child updates his position e.g. when adding or removing a child
- added parameter
nonDraggableIndicies(thanks toBader-Alfor the PR #93)- you can specify the indices of children that cannot be dragged but are still movable while dragging
5.0.0-dev.8 #
đ Bug fixes
- fixed animation when releasing a dragged item
- fixed item animations when adding or removing them
5.0.0-dev.7 #
âī¸ New features
- you can add
datatoDraggableorLongPressDraggable- use the widget
CustomDraggablefor that - more info is added to the read me
- use the widget
- added new callback
onDraggedChildUpdated(thanks for the PR Bader-AI)- always called when the dragged child updated his position while dragging
- you should use this without changing the children, otherwise this could lead to weird behavior while using drag and drop
- added new parameter
releasedChildDuration- can be used to define the duration when a dragged child was released and is moving to his new position
- default value is 150ms
đ Bug fixes
- there were issues that required to add
initDelayto fix wrong behavior while drag and drop- this should be fixed by calculating the positions differently to before
- before the positions were calculated related to the global widget
- now the positions are only calculated to the local widget
- this fixes wrong calculated positions
- fixes issue of
naw2ndin Issue #83 when using a BottomModalSheet
5.0.0-dev.6 #
đ This release contains some bugfixes (optimization)
- while dragging there were issues when the user scrolled with another finger
- the dragged item was dropped if when it shouldn't
5.0.0-dev.5 #
đ This release contains some bugfixes
- fixed drag and drop after using functionality "scrolling while dragging" (thanks to tsquillario for pointing out that issue)
- fixed disappeared children after using functionality "scrolling while dragging"
5.0.0-dev.4 #
âī¸ New features
- updated two functions
onDragStarted- added
indexto parameter indexis the index where the drag started
- added
onDragEnd- added
indexto parameter indexis the index where the drag ended
- added
đ This release contains some bugfixes
onDragStartedwasn't called and should work nowonDragEndwasn't called and should work now
5.0.0-dev.3 #
âī¸ New features
- added support for horizontal direction (Issue #53)
- with this, you can use your
GridViewin both directions - currently there might be still small bugs
- with this, you can use your
- added parameter
fadeInDuration(Issue #68)- default value is
const Duration(milliseconds: 500) - this parameter is responsible for the animation when a new child appears and describes the duration of the animation
- default value is
- parameter
initDelayis working again
5.0.0-dev.2 #
- đ This release contains some bugfixes
- drag and drop combined with
lockedIndicesandGridView.buildershould work now
- drag and drop combined with
- âī¸ Optimized reordering items
- the callback
onReorderis offering a function as parameter after reordering items - the reason for that change is a performance issue, especially having big lists
- to ensure that everyone is using the same reordering process, I moved the logic to the package inside a function
- the callback
- đ§âđģ
- refactored some code and added comments to some parts
5.0.0-dev.1 #
âšī¸âšī¸âšī¸âšī¸
- This is a prerelease and does not contain all functionalities that are tagged in GitHub for the release
- the functionalities will be implemented if possible
- This release contains
- completely redesigned logic for the animation and drag and drop
- smoother animation
- much better performance (
GridView.builderis now working as it should work, see more on the example inmain.dart)
- Still missing
- tests
- comments
- documentation
- some features from GitHub for this release
- there are still some bugs (I am pretty sure), so please try out this prerelease and post the issues on GitHub!
- known bugs:
- drag and drop in combination with
lockedIndicesandGridView.buildercan lead to wrong animations - Android: seems like it is possible that the drag and drop leads to wrong positioning of items when releasing the dragged item
GridView.builder: rotating the device leads to wrong behavior when using drag and drop
- drag and drop in combination with
- known bugs:
âšī¸âšī¸âšī¸âšī¸
4.0.0 #
âšī¸ Information
This is not the new big release! This will come with version 5.0.0.
- the reason is the flutter upgrade
3.7.0that was released a couple days ago - to ensure that people who are still using a lower flutter are not updating this package automatically, I had to make this update with
4.0.0 - so the big update will come with
5.0.0hopefully in one or two months - you could already test it as pre-release
đ Fixed error because of flutter upgrade 3.7.0
- fixed an error that was thrown because of the flutter ugprade
3.7.0
3.1.3 #
đ Fixed some bugs
- fixed two null check errors (Issue #41 and Issue #44)
- fixed animated behavior when using
GridView.builder(Issue #44)- before there was no animation when adding or removing an item, this should work now
- this should also fix the callback
onReorderwhere an index of an item is returned that should not exist
âšī¸ Information
- added Roadmap for release
5.0.0
3.1.2 #
đ Fixed small bug
- Fixed exception
Null check operator used on a null value(Issue #41)
đ§âđģCode Refactoring
- Updated
flutter_lintsto2.0.1
3.1.1 #
đ Fixed Bugs
- There was a problem when having the scrollable widget outside the
ReorderableBuilder- The scrolling to top didn't work when it was scrolled to bottom
- also
automaticScrollExtentdidn't calculate the correct area when scrolling to top
3.1.0 #
đ Fixed Bugs
- Because of the update of flutter version
3.0.0, this package couldn't support earlier versions because of the last update- with this version, the package should also work for versions before
3.0.0
- with this version, the package should also work for versions before
3.0.1 #
đ Fixed Bugs
- fixed warnings due to flutter update version
3.0.0
3.0.0 #
â ī¸ī¸ Breaking Changes
- you have to add the
ScrollControllertoReorderableBuilderand yourGridViewto make sure that the drag and drop still works - an exception would be if your content is scrollable outside your
GridView
âī¸ New features
-
enableScrollingWhileDragging- IMPORTANT: You have to add a
GlobalKeyto yourGridViewbefore autoscroll can work - enables autoscrolling while dragging
- you can automatically scroll while dragging a child to the bottom or top of your
GridView
- IMPORTANT: You have to add a
-
automaticScrollExtent- define the height of the area before the autoscroll is starting when moving to top or bottom
-
for more information, check out the example
2.1.0 #
âī¸ New features
- added two new parameters for
ReorderableBuilder:onDragStarted: Called when user starts dragging a childonDragEnd: Called when user releases dragged child
đĻ Behavior changed
onReorderwon't be called anymore when the dragged child didn't change his original position
2.0.3 #
đ Fixed Bugs
- Wrong behavior after updating children (especially the key) and using drag and drop
- For every update of a child, a new listener was added
- this behavior is fixed
- now only one listener will be added
đĻ Behavior changed
- When using drag and drop to a locked child, no position will be changed
2.0.2 #
- Downgraded Dart-version from
2.16.1to2.16.0
2.0.2-dev.2 #
- second try to solve dependency issue
2.0.2-dev.1 #
- trying to solve dependency problem
2.0.1 #
- updated pubspec
2.0.0 #
- Official Release of 2.0.0
- There are breaking changes in this release:
- Currently I don't support the widget
Wrap - I removed all custom widgets for
GridView- instead you can use
ReorderableBuilderas a Wrapper for allGridViewof Flutter - See more on Getting Started or the example app
- instead you can use
- Currently I don't support the widget
2.0.0-dev.5 #
- last release candidate! (if there aren't some critical bugs)
- this release includes a change for the function
onReorder- the function gives always a list of entities containing the old and new index for children
- this case had to be done to ensure correct animations when there are locked children (
lockedIndices) - see more on the example app in
main.dart
- multiple other bugs were solved when changing positions or adding/removing children
- added more commentaries to classes
- Before publishing the official
2.0.0, the following things will be done:- Unit and Widget tests
- some more refactoring, also in favor of making the testing easier
- Refactoring example app
- ReadMe gets a whole new update
2.0.0-dev.4 #
- Removed
AnimatedGridViewBuilderandAnimatedReorderableBuilderbecause there were some problems splitting the logic for animation while dragging and adding/removing items ReorderableBuilderis making all the animation- to disable drag and drop, just make
enableDraggableto false
- to disable drag and drop, just make
- improved the performance
- Todo:
- Refactoring of code
- more testing
- Widget tests + Unit Tests (?)
- updating examples
- updating read me
2.0.0-dev.3 #
- Removed
ReorderableWrapandReorderableGridView - New widgets for more flexibility:
ReorderableBuilderfor Drag and Drop with allGridViewandWrapAnimatedGridViewBuilderfor animation when adding or removing children with all types ofGridViewAnimatedReorderableBuildercombinesReorderableBuilderandAnimatedGridViewBuilder
- See more examples with the new widgets in the example folder
2.0.0-dev.2 #
- Added animation when there are new children added or removed
- Working for all types of
GridView - Currently not supported for
ReorderableWrap
- Working for all types of
- Some bug fixes when adding/removing items
- Work in Progress:
- More Configurations
- Separated widget only for animation when removing/adding children
- Fixing flickering when adding children in GridView
- Still some bugs when reordering children
2.0.0-dev.1 #
- Complete rebuilt Reorderable GridViews and Wrap
- Supporting all types of
GridView - Better performance by displaying the original GridViews/Wrap
- More options to add to GridViews/Wrap
- Work in Progress:
- Animated children when removing/adding one or multiple children
- Tests still missing
- New docu
1.1.5 #
- Fixed a bug when changing from
enableReorderfalsetotrue
1.1.4 #
- Added parameter
enableReorderwith default valuetrue
1.1.3 #
- BoxDecoration added for dragged child
1.1.2 #
- AnimationController disposing
1.1.1 #
- Some Readme changes
- fixed clipBehavior while scrolling (clipBehavior is now Clip.hardEdge)
1.1.0 #
- Added animation for the following cases:
- Item was added to children
- Item was removed from children
- all children are animated when an item is added or removed
- From now, you have to add a unique key for every child in your list, see more on the example app
1.0.2 #
- fixed scrolling e. g. for
RefreshIndicator
1.0.1 #
- fixed ClipBehavior
1.0.0 #
- Old used
ReorderableGridViewnow calledReorderableWrap - New
ReorderableGridViewaddedReorderableGridViewReorderableGridView.countReorderableGridView.extent
1.0.0-dev.4 #
- Drag Update Position fixed with PostFrameCallback
- All tests now passes
1.0.0-dev.3 #
- Fixed Scrolling Bugs in and outside widget
1.0.0-dev.2 #
- Fixed ReorderableGridView.extent
1.0.0-dev.1 #
- Differentiate between Wrap and GridView
- ReorderableGridView renamed to ReorderableWrap
- ReorderableGridView created with different GridView Builds
- ReorderableGridView.count added
- ReorderableGridView.extent added
- Hint: Multiple Props still missing
0.3.0 #
- Fixed some critical bugs
- When children are updated (e. g. a new one is added or removed) then the gridview updates normally
- When changing screen orientation, then the GridView repositions all children
- all bugs are covered with new tests
0.2.1 #
- Updated ReadMe
0.2.0 #
- lockedChildren added to specify items that should not change their positions
- optimized performance
0.1.0 #
- onUpdate added to notifiy the user that there was an update while moving items
- LongPressDelay added
0.0.8 #
- ReadMe Prettier
0.0.7 #
- ReadMe Prettier
0.0.6 #
- ReadMe Fix
0.0.5 #
- ReadMe Fix
0.0.4 #
- ReadMe update with badges
- Build Number
- Code Coverage
- Build Passing
0.0.3 #
- Updated ReadMe
- Added example
0.0.2 #
- Renamed
FlutterReorderableGridViewtoReorderableGridView
0.0.1 #
- Enables to reorder widgets inside a Wrap
- Animated Reordering