flutter_resizable_container 4.0.0 flutter_resizable_container: ^4.0.0 copied to clipboard
Add nestable, resizable containers to your Flutter app with ease.
4.0.0 #
Stable release of v4 with all changes of prior beta releases.
4.0.0-beta.4 #
- Account for expand sizes with min/max bounds
- Prevent the controller from notifying its listeners during layout/init
- Make
ResizableSize
subclasses' constructor's private - Improve doc comments
4.0.0-beta.3 #
- Move the min/max bounds out of the
ResizableChild
and into theResizableSize
- Remove the
divider
property of theResizableContainer
and add it into theResizableChild
- Add a
cursor
property to theResizableDivider
to display a customMouseCursor
when hovering over the divider
4.0.0-beta.2 #
- Add a
ResizableLayout
widget that uses a customRenderObject
to handle the initial layout and the layout after any properties on theResizableContainer
are updated.
4.0.0-beta.1 #
- Rewrite the Controller/Container logic to allow Flutter to handle the initial layout of all widgets, updating the rendered sizes in the controller after the first frame. This shouldn't have any major impact to the API, but it does introduce the use of Timers, which could affect tests.
- Rename
ResizableController.sizes
toResizableController.pixels
to more clearly indicate its value. - Store, expose, and utilize the current list of
ResizableSize
values in the controller. This enables the values to be used even after manually updating them.
3.0.4 #
- Fix a bug/add support for RTL Directionality.
3.0.3 #
- Reinstate the removed
ResizableControllerManager#setChildren
method. This method was removed because the method it targets on the controller was made public. However, the package version was incorrectly bumped since this could be a breaking change. This patch reinstates the method, fixing the breaking change, but adds a deprecation warning in favor of the public controller method.
3.0.2 #
- Make the "setChildren" method of the ResizableContainer public to address a limitation that was causing the "children length equals sizes length" assertions to fail (#61).
3.0.1 #
- Fix a bug causing negative values in a BoxConstraint, which was throwing an AssertionError (#60).
3.0.0 #
After much feedback, I revised the ResizableContainerDivider
to be even more customizable. The changes include:
- Replace the
size
,indent
, andendIndent
properties with alength
property, of typeResizableSize
, to control how long the dividing line is - Add
crossAxisAlignment
andmainAxisAlignment
properties to control where the line sits in its available space (if the line does not take up its full length and/or has padding, see below). - Add a
padding
property to add empty space along the main axis - the divider sits within, or alongside, this empty space
2.0.0 #
New major version! See the beta notes below.
2.0.0-beta.4 #
- Fix a bug in the "available size" initialization that was throwing a "marked dirty during build" exception
2.0.0-beta.3 #
- Add a
ResizableSize.expand
constructor that takes aflex
integer (defaults to 1) - Remove the optionality of the
size
parameter inResizableChild
and use a defaultResizableSize.expand()
value - Adjust the controller to disallow
null
values forResizableSize
arguments - Adjust the controller to prioritize modifying
ResizableSize.expand
children when scaling the window (up or down) over thepixel
andratio
children, unless noexpand
children are set
2.0.0-beta.2 #
- Added a new
ResizableSize
class that defines a "size" in pixels or as a ratio - Changed the
startingRatio
in theResizableChild
tostartingSize
that takes an optionalResizableSize
- This change allows the starting size of a child to be defined as an absolute value (in logical pixels) or as a ratio of the available space
- If there is a mixture of pixels and ratio sizes, the pixel sizes will be given priority and then the ratio sizes will be given the remaining available space
- Added a
setSizes
method to theResizableController
that takes a list of optionalResizableSize
s. These sizes will be applied to the current children following the same rules as noted above - Removed the
ratios
setter in favor of the newsetSizes
method - Made the controller an optional param in the
ResizableContainer
ctor
2.0.0-beta.1 #
- Renamed
ResizableChildData
toResizableChild
- Added an
expand
flag to theResizableChild
ctor- If there is a
startingRatio
set and this flag istrue
, the child will automatically expand to fill any remaining available space. If this flag isfalse
, the child will only expand to meet itsstartingRatio
constraint - If the
startingRatio
isnull
, the child will automatically expand to fill any remaining available space, regardless of whether or not this flag is set
- If there is a
- Move the list of
ResizableChild
objects out of theResizableController
and back into theResizableContainer
as thechildren
parameter- This allows the list of children to be modified on-the-fly without recreating a
ResizableController
- This allows the list of children to be modified on-the-fly without recreating a
1.0.0 #
First stable version!
- Encapsulation of divider configuration in a new
ResizableDivider
class- Divider
thickness
andsize
properties, mirroring the Flutter Divider'sthickness
andwidth
properties, have been added onHoverEnter
andonHoverExit
callbacks allow you to react to the user's interactions with the divider
- Divider
- All size tracking and calculations have been moved out of the
ResizableContainer
widget and into theResizableController
- This fixed several bugs and improves performance by converting the
ResizableContainer
to aStatelessWidget
(from stateful)
- This fixed several bugs and improves performance by converting the
ResizableContainer
now requires aList<Widget>
as itschildren
property, as theList<ResizableChildData>
have been moved into theResizableController
- Added and improved tests
- Added a GH workflow to deploy the example app to GH Pages
0.5.0 #
- Adds
dividerIndent
anddividerEndIndent
properties to the resizable container
0.4.2 #
- Fixes an issue with the
didUpdateWidget
lifecycle hook causing errors to be thrown during hot-reloads
0.4.1 #
- Add tests for
ResizableController
- Add tests for
ResizableContainer
- Add GitHub Actions workflow
0.4.0 #
- Add
ResizableController
to allow programmatic control of resizable children - Fix a bug causing adjacent containers to grow in size when the target container reaches is minimum size
0.3.0 #
- Make divider color and width customizable
0.2.1 #
- Fix package description to improve pub.dev score
0.2.0 #
- Update the Dart SDK constraints to >=3.0.0 <4.0.0
0.1.3 #
- Fix a bug causing overflows when the window is resized
- Remove the factory and add the debug assert directly to the ctor
0.1.2 #
- Remove commented code from the example project
0.1.1 #
- Improve documentation and comments
0.1.0 #
- Rework dividers to lie in-line with child widgets, taking up space along the primary axis, instead of being placed in a stack and positioned according to the child sizes
- Add a custom divider who's width is known and can be controlled to ease calculating the available space for child widgets
- Remove the optionality of the divider - this widget is now required to be visible, as hiding it would disable the resize functionality
0.0.5 #
- Fix divider and cursor positioning
0.0.4 #
- Add optional divider line
- Fix a bug allowing child sizes to grow beyond available space
- Improve example with switchable direction and toggle-able divider
0.0.3 #
- Add example to README
- Add example project
- Fix a bug allowing negative child sizes
0.0.2 #
- Fix a typo in the README
0.0.1 #
Initial Release
- Container resizes and enforces child size constraints (if present)
- Resize cursor responds to user clicks and drags on web