FSidebar class

A sidebar widget that provides an opinionated layout on the side of the screen.

The FSidebar widget is useful for creating navigation sidebars with a header (sticky), content (scrollable), and footer (sticky) sections.

The layout structure is organized as follows:

┌────────────────────-┐
│   Header (Sticky)   │
├────────────────────-┤
│                     │
│                     │
│      Content        │
│    (Scrollable)     │
│                     │
│                     │
├────────────────────-┤
│   Footer (Sticky)   │
└────────────────────-┘

See:

Inheritance

Constructors

FSidebar({required List<Widget> children, Widget? header, Widget? footer, FSidebarStyleDelta style = const .context(), bool autofocus = false, FocusScopeNode? focusNode, TraversalEdgeBehavior? traversalEdgeBehavior, Key? key})
Creates a sidebar with a list of children that will be wrapped in a ListView.
FSidebar.builder({required Widget itemBuilder(BuildContext context, int index), required int itemCount, FSidebarStyleDelta style = const .context(), Widget? header, Widget? footer, bool autofocus = false, FocusScopeNode? focusNode, TraversalEdgeBehavior? traversalEdgeBehavior, Key? key})
Creates a sidebar with a builder function that will be wrapped in a ListView.builder.
FSidebar.raw({required Widget child, Widget? header, Widget? footer, FSidebarStyleDelta style = const .context(), bool autofocus = false, FocusScopeNode? focusNode, TraversalEdgeBehavior? traversalEdgeBehavior, Key? key})
Creates a sidebar with a custom content widget.
const

Properties

autofocus → bool
True if this widget will be selected as the initial focus when no other node in its scope is currently focused.
final
child → Widget
The main scrollable content.
final
focusNode → FocusScopeNode?
An optional focus node to use as the focus node for this widget.
final
An optional sticky footer.
final
hashCode → int
The hash code for this object.
no setterinherited
An optional sticky header.
final
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
style → FSidebarStyleDelta
The style.
final
traversalEdgeBehavior → TraversalEdgeBehavior?
Controls the transfer of focus beyond the first and the last items in the sidebar. Defaults to TraversalEdgeBehavior.parentScope.
final

Methods

createElement() → StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() → State<FSidebar>
Creates the mutable state for this widget at a given location in the tree.
override
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.
override
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