CLAdaptiveShell class
Shell adattivo a slot. Sceglie sidebar/drawer/bottom-bar per larghezza. Trasparente alle logiche app: riceve dati + slot, non conosce router/AI/auth.
Nota: sul tier desktop (sidebar) NON crea uno Scaffold. Se body/trailing
usano SnackBar/showModalBottomSheet, l'app deve garantire uno Scaffold
antenato. Sui tier drawer/bottom-bar lo Scaffold è fornito dallo shell.
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- CLAdaptiveShell
- Available extensions
Constructors
-
CLAdaptiveShell({Key? key, required List<
CLDestination> destinations, required String? selectedKey, required ValueChanged<CLDestination> onSelect, required Widget header, required Widget body, Widget? headerLeading, Widget? trailing, Widget? endDrawer, CLShellConfig config = const CLShellConfig(), ShellSlotsController? slotsController, Widget? railHeader, Widget? railSecondary, List<CLDestination> ? bottomDestinations, List<CLBottomBarItem> ? bottomBarItems, Widget? bottomBarHomeLogo}) -
const
Properties
- body → Widget
-
final
- bottomBarHomeLogo → Widget?
-
Logo mostrato nell'header MOBILE (bottom-bar) quando la pagina non ha
breadcrumb né back (es. home). Sostituisce il titolo vuoto.
null= niente.final -
bottomBarItems
→ List<
CLBottomBarItem> ? -
Voci FISSE custom della bottom bar (mobile). Se non null sostituisce la barra
nav (destination-driven) con queste voci nell'ordine dato — es.
menu, dashboard, AI, profilo, ricerca. L'hamburger nell'header viene nascosto (il menu vive nella barra). UsaslotsController.openMenu()/openAi()per le azioni che richiedono lo Scaffold interno.final -
bottomDestinations
→ List<
CLDestination> ? -
Voci dedicate alla bottom bar (mobile). Se
nullusa destinations. Serve a curare un set diverso dal menu completo (es. solo le 4 scorciatoie chiave).final - config → CLShellConfig
-
final
-
destinations
→ List<
CLDestination> -
final
- endDrawer → Widget?
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- header → Widget
-
Contenuto top bar (logo/titolo + search + AI). Lo shell antepone l'hamburger
su drawer/bottom-bar; NON includerlo qui.
final
- headerLeading → Widget?
-
Logo dell'app, mostrato in cima al menu (nav panel) su tutti i breakpoint —
sidebar desktop e drawer tablet/mobile. Mai nell'header.
null= assente.final - key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
-
final
-
final
-
Voci secondarie del menu (es. "Gestione cliente") sotto l'azienda. Con
config.resizableNavHeaderdiventano la parte SCROLLABILE del pannello header (azienda pinnata sopra, queste scrollano fino al divider). Senza resize, impilate sotto navHeader nella barra frosted.final -
onSelect
→ ValueChanged<
CLDestination> -
final
-
final
- railHeader → Widget?
-
Slot in cima/in fondo alla rail (tier tablet), icon-only. Es. icona tenant
in alto, help + avatar utente in basso. Ignorati su sidebar/bottom-bar.
final
- railSecondary → Widget?
-
Voci secondarie ICON-ONLY per il tier collassato (rail/tablet): con
resizableNavHeaderdiventano la parte scrollabile della bolla header (icone cliente sotto l'azienda, con drag sul bordo). Analogo rail di navSecondary. Se null, in rail la bolla non si estende con le voci cliente.final - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- selectedKey → String?
-
final
- slotsController → ShellSlotsController?
-
Controller dei slot. Se
null, lo shell ne crea uno proprio. Passarlo dall'esterno permette all'app di pubblicare il canale nav (back/breadcrumbs) senza avvolgere ilbody(evita reparenting di widget con GlobalKey).final - trailing → Widget?
-
final
Methods
-
animateOnActionTrigger(
AnimationInfo animationInfo, {bool hasBeenTriggered = false}) → Widget -
Available on Widget, provided by the AnimatedWidgetExtension extension
-
animateOnPageLoad(
AnimationInfo animationInfo) → Widget -
Available on Widget, provided by the AnimatedWidgetExtension extension
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< CLAdaptiveShell> -
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.
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