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
- 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.