Implement Stacked Expandable Notifications #170
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.
Overview
Changes Made
Replaced
AnimatedList
withStack
:_listGlobalKey
andAnimatedListState
.Stack
to overlay notifications, enabling them to overlap and expand when necessary.Used
AnimatedPositioned
andAnimatedOpacity
:AnimatedPositioned
to animate the position of each notification within the stack.AnimatedOpacity
to adjust the transparency of notifications based on their position and hover state.Introduced
ValueNotifier<List<ToastificationItem>>
:ValueNotifier
to reactively manage the list of notifications.Added Hover Functionality with
MouseRegion
:MouseRegion
to detect hover events.Adjusted Animation Durations and Delays:
_createAnimationDuration
to accommodate the new animations._createOverlayDelay
and_removeOverlayDelay
for smoother transitions.Implementation Details
Stacked Notifications Behavior:
Opacity and Position Adjustments:
opacity
andtop
position are calculated based on the notification's index and hover state.Timer Management:
Responsive Updates:
AnimatedBuilder
andValueNotifier
to ensure the stack updates when notifications are added or removed.Related Issue
close #88
Testing
Hover Interactions:
Adding/Removing Notifications:
Edge Cases: