resizable_splitter library

Resizable Splitter helps you build responsive, drag-to-resize layouts in Flutter.

Example:

final splitter = ResizableSplitter(
  start: const Text('Primary content'),
  end: const Text('Secondary content'),
);

Classes

EndPixelsSplitterPosition Model
A SplitterPosition that fixes the end panel to a pixel extent.
FractionSplitterPosition Model
A SplitterPosition expressed as a start-panel fraction.
MagneticSnap Snapping
Snapping that continuously pulls the divider toward the nearest point during the drag. The pull fades to zero at the tolerance edge, so the pointer can always push through, and the released position is committed as shown. A non-zero settleFactor adds a small core around each point where the divider settles exactly onto it, giving the pull a crisp finish.
ReleaseSnap Snapping
Snapping that settles onto the nearest point only when the drag is released within tolerance. The divider tracks the pointer freely during the drag.
ResizableSplitter Widget
A high-performance resizable splitter widget with robust pointer handling.
ResizableSplitterTheme Theming
Provides ResizableSplitterThemeData to a subtree.
ResizableSplitterThemeData Theming
Shared styling and behavior for ResizableSplitter widgets.
SplitterChangeDetails Events
The payload delivered to the change callbacks: a snapshot of both what was requested and what is actually shown, tagged with the source that produced it.
SplitterController Controller
A controller for a ResizableSplitter's position.
SplitterDividerStyle Theming
Visual and grab configuration for the splitter's divider handle.
SplitterHandleDetails Theming
Snapshot of the divider handle's interaction state, passed to a custom SplitterDividerStyle.builder.
SplitterLayout Layout
The resolved, on-screen geometry of a split for the current layout.
SplitterPaneConstraints Layout
Per-pane sizing limits for one side of a split, in logical pixels.
SplitterPosition Model
A requested split position, independent of the current layout.
SplitterSemanticsLabels Theming
Localizable strings and value formatting for a ResizableSplitter's accessibility semantics.
SplitterSnapBehavior Snapping
How a drag interacts with snap points.
SplitterState Model
The complete, atomic requested state of a split: where the divider is wanted (position) and which pane, if any, is collapsed (collapsedPane).
StartPixelsSplitterPosition Model
A SplitterPosition that fixes the start panel to a pixel extent.
StickySnap Snapping
Snapping that captures the divider onto a point during the drag and holds it there until the pointer escapes past escapeFactor * tolerance. The escape radius exceeding the capture radius is the hysteresis that prevents flicker at the boundary.

Enums

SplitterAnimationStatus Events
The outcome of a SplitterController.animateTo run, delivered when its future resolves.
SplitterChangeEnd Events
How an interaction that began with ResizableSplitter.onChangeStart ended, reported in the SplitterChangeDetails passed to ResizableSplitter.onChangeEnd.
SplitterChangeSource Events
What triggered a split change reported to the change callbacks. Lets consumers tell a user drag apart from a snap, a collapse, or the built-in double-tap reset.
SplitterConstraintPolicy Layout
Policy applied for a shortage: both panes' minimums cannot fit at once (start.minExtent + end.minExtent > available).
SplitterPane Model
Identifies one of the two panes of a split.
SplitterResolution Layout
How the solver resolved a requested position against the pane constraints and the available space, for one layout pass.
SplitterSurplusPolicy Layout
Policy applied for a surplus: both panes' maximums are too small to fill the available space (start.maxExtent + end.maxExtent < available).
UnboundedBehavior Theming
How the splitter should behave when the main-axis constraints are unbounded.