- Addressed issue #94: Too much widget rebuild occurring when using PanelBuilder. This fix results in huge performance benefits when using the
panelChild
property - Addressed issues #102, #111: Fixed issue where tapping on the panel closes it (when using the
panelBuilder
)
- Addressed issue #107: Added duration and curve properties to the
PanelController
'sanimatePanelToPosition
method - Addressed issues #12,#77,#86,#100: Added a
snapPoint
property to allow the panel to snap to a position midway during its slide
- Updated documentation to reflect new features and fixes
- Addressed issue #69: Used a FadeTransition to handle opacity changes (as per Flutter documentation)
- Cleaned up
PanelController
code to make maintenance easier - Added clearer assert statements and messages to indicate why calling
PanelController
methods would fail before attaching thePanelController
.
- Addressed issues #17, #55, #60: Added the ability to link / nested the scroll position of the panel content with the position of the panel (i.e. infinite scrolling).
- Added the
panelBuilder
property that's required to implement the nested scrolling as described above. - Added an
isAttached
property to thePanelController
to indicate whether or not thePanelController
is attached to an instance of theSlidingUpPanel
The following PanelController
methods now return Future<void>
instead of void
:
close()
open()
hide()
show()
animatePanelToPosition(double value)
The following PanelController
methods have changed to Dart properties to better reflect Dart language conventions:
setPanelPosition()
->panelPosition
[as a setter]getPanelPosition()
->panelPosition
[as a getter]isPanelAnimating()
->isPanelAnimating
isPanelOpen()
->isPanelOpen
isPanelClosed()
->isPanelClosed
isPanelShown()
->isPanelShown
For example, here's how you would have previously used setPanelPosition()
and getPanelPosition()
vs. how you would now use the panelPosition
property:
// OLD, no longer supported
print(pc.getPanelPosition()); // print a value between 0.0 and 1.0
pc.setPanelPosition(0.5); // sets the panelPosition to 0.5
// NEW
print(pc.panelPosition); // print a value between 0.0 and 1.0
pc.panelPosition = 0.5; // sets the panelPosition to 0.5
And here's how you would have previously called isPanelAnimating()
vs. how you would now call isPanelAnimating
.
panelController.isPanelAnimating(); // OLD, no longer supported
panelController.isPanelAnimating; // NEW
- Updated the documentation to reflect changes
- Updated example to use nested scrolling
- Fixed issues #54, #59 where panel listeners would be called before UI was rendered (related to
defaultPanelState
)
- Updated the documentation to reflect fixes
- Added the
defaultPanelState
property that changes whether the panel is either open or closed by default (PanelState.OPEN
orPanelState.CLOSED
)
- Updated the documentation to reflect new features
- Added the
slideDirection
property that changes how the panel slides open (either up or down)
- Updated the documentation to reflect new features
- Added the
isDraggable
property that allows/prevents dragging of the panel
- Updated the documentation to reflect new features
- Fixed problem where images would wrap on pub (instead of displaying on one line)
- Configuration options to
SlidingUpPanel
parallaxEnabled
parallaxOffset
- Created a new example app (Maps)
- Updated documentation to reflect new features
-
Added ability to close the
panel
when the backdrop is tapped -
Added callbacks to the
SlidingUpPanel
onPanelSlide
onPanelOpened
onPanelClosed
-
Added methods to the
PanelController
setPanelPosition
animatePanelToPosition
getPanelPosition
isPanelAnimating
isPanelOpen
isPanelClosed
isPanelShown
- Fixed issue where the
collapsed
widget would accept touch events even when invisible (i.e. even when the panel was fully open)
- Updated documentation to reflect new features
- Added clarification on
PanelController
lifecycle - Added an explanation about nesting the
Scaffold
when displaying a backdrop
Added the backdrop feature:
- Body darkens as the panel opens
- The backdrop color is customizable
- The backdrop opacity is also customizable
- Off by default
Other changes:
- Removed the README from the example app (pub will display the code on the website now)
- Specified Dart as the language in the README code snippets
- Updated documentation to be more comprehensive
- Added a CHANGELOG file
This is the initial release of the sliding_up_panel package. This includes features such as
- A sliding up panel that responds to user gestures
- Customizing the look and feel of the sliding panel
- Manually controlling the sliding panel via the PanelController