SPScaffold class
A highly flexible, responsive wrapper around Flutter's native Scaffold.
Passes through all native Scaffold behaviors, allowing it to be used exactly like a standard Scaffold. However, it introduces intelligent responsive layout capabilities:
By providing specific breakpoints, developers can automatically transform a fly-out drawer into a permanent side navigation panel on desktop screens, display a navigationRail on tablet screens, and hide the bottomNavigationBar on larger screens—all without writing complex MediaQuery checks or duplicating widget trees.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- SPScaffold
Constructors
- SPScaffold({Key? key, Key? scaffoldKey, PreferredSizeWidget? appBar, Widget? body, Widget? floatingActionButton, FloatingActionButtonLocation? floatingActionButtonLocation, FloatingActionButtonAnimator? floatingActionButtonAnimator, Widget? drawer, DrawerCallback? onDrawerChanged, Widget? endDrawer, DrawerCallback? onEndDrawerChanged, Widget? bottomSheet, Color? backgroundColor, bool? resizeToAvoidBottomInset, bool primary = true, DragStartBehavior drawerDragStartBehavior = DragStartBehavior.start, bool extendBody = false, bool extendBodyBehindAppBar = false, Color? drawerScrimColor, double? drawerEdgeDragWidth, bool drawerEnableOpenDragGesture = true, bool endDrawerEnableOpenDragGesture = true, String? restorationId, SPBreakpoints breakpoints = SPBreakpoints.standard, SPBreakpoint? permanentDrawerBreakpoint, SPBreakpoint? permanentEndDrawerBreakpoint, })
-
const
Properties
- appBar → PreferredSizeWidget?
-
final
- backgroundColor → Color?
-
final
- body → Widget?
-
final
-
final
- bottomSheet → Widget?
-
final
- breakpoints → SPBreakpoints
-
The global breakpoint definitions used to evaluate screen width.
final
- drawer → Widget?
-
final
- drawerDragStartBehavior → DragStartBehavior
-
final
- drawerEdgeDragWidth → double?
-
final
- drawerEnableOpenDragGesture → bool
-
final
- drawerScrimColor → Color?
-
final
- endDrawer → Widget?
-
final
- endDrawerEnableOpenDragGesture → bool
-
final
- extendBody → bool
-
final
- extendBodyBehindAppBar → bool
-
final
- floatingActionButton → Widget?
-
final
- floatingActionButtonAnimator → FloatingActionButtonAnimator?
-
final
- floatingActionButtonLocation → FloatingActionButtonLocation?
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
-
The minimum breakpoint at which the bottomNavigationBar is automatically hidden.
Usually set to SPBreakpoint.md so bottom navs only appear on phones.
Defaults to null (never automatically hidden).
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
-
A widget to display as a navigation rail (a thin vertical navigation bar).
Usually used on medium tablet screens.
final
-
The minimum breakpoint at which the navigationRail is shown.
If the screen reaches the permanentDrawerBreakpoint, the rail is hidden
in favor of the full drawer.
Defaults to null.
final
- onDrawerChanged → DrawerCallback?
-
final
- onEndDrawerChanged → DrawerCallback?
-
final
- permanentDrawerBreakpoint → SPBreakpoint?
-
The minimum breakpoint at which the drawer becomes permanently visible
alongside the body (like a desktop sidebar) rather than hidden behind a menu.
Defaults to null (always utilizes native fly-out drawer behavior).
final
- permanentEndDrawerBreakpoint → SPBreakpoint?
-
The minimum breakpoint at which the endDrawer becomes permanently visible
alongside the body on the right side.
Defaults to null (always utilizes native right fly-out drawer behavior).
final
-
final
-
final
- primary → bool
-
final
- resizeToAvoidBottomInset → bool?
-
final
- restorationId → String?
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- scaffoldKey → Key?
-
final
Methods
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
override
-
createElement(
) → StatelessElement -
Creates a StatelessElement to manage this widget's location in the tree.
inherited
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited