KeyedTabBar<K extends Object> class

A replacement to TabBar that uses a map of children instead of a list.

If you don't need onTap that works with keys, you may instead just do

TabBar(
  controller: controller,
  tabs: controller.mapToList(tabMap),
)
Inheritance

Constructors

KeyedTabBar({Key? key, required Map<K, Widget> tabs, required KeyedTabController<K> controller, bool isScrollable = false, EdgeInsetsGeometry? padding, Color? indicatorColor, bool automaticIndicatorColorAdjustment = true, double indicatorWeight = 2.0, EdgeInsetsGeometry indicatorPadding = EdgeInsets.zero, Decoration? indicator, TabBarIndicatorSize? indicatorSize, Color? labelColor, TextStyle? labelStyle, EdgeInsetsGeometry? labelPadding, Color? unselectedLabelColor, TextStyle? unselectedLabelStyle, DragStartBehavior dragStartBehavior = DragStartBehavior.start, MaterialStateProperty<Color?>? overlayColor, MouseCursor? mouseCursor, bool? enableFeedback, ValueChanged<K>? onTap, ScrollPhysics? physics, InteractiveInkFeatureFactory? splashFactory, BorderRadius? splashBorderRadius})

Properties

automaticIndicatorColorAdjustment bool
Whether this tab bar should automatically adjust the indicatorColor.
finalinherited
controller TabController?
This widget's selection and animation state.
finalinherited
dividerColor Color?
The color of the divider.
finalinherited
dividerHeight double?
The height of the divider.
finalinherited
dragStartBehavior DragStartBehavior
Determines the way that drag start behavior is handled.
finalinherited
enableFeedback bool?
Whether detected gestures should provide acoustic and/or haptic feedback.
finalinherited
hashCode int
The hash code for this object.
no setterinherited
indicator Decoration?
Defines the appearance of the selected tab indicator.
finalinherited
indicatorColor Color?
The color of the line that appears below the selected tab.
finalinherited
indicatorPadding EdgeInsetsGeometry
The padding for the indicator.
finalinherited
indicatorSize TabBarIndicatorSize?
Defines how the selected tab indicator's size is computed.
finalinherited
indicatorWeight double
The thickness of the line that appears below the selected tab.
finalinherited
isScrollable bool
Whether this tab bar can be scrolled horizontally.
finalinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
labelColor Color?
The color of selected tab labels.
finalinherited
labelPadding EdgeInsetsGeometry?
The padding added to each of the tab labels.
finalinherited
labelStyle TextStyle?
The text style of the selected tab labels.
finalinherited
mouseCursor MouseCursor?
The cursor for a mouse pointer when it enters or is hovering over the individual tab widgets.
finalinherited
onTap ValueChanged<int>?
An optional callback that's called when the TabBar is tapped.
finalinherited
overlayColor MaterialStateProperty<Color?>?
Defines the ink response focus, hover, and splash colors.
finalinherited
padding EdgeInsetsGeometry?
The amount of space by which to inset the tab bar.
finalinherited
physics ScrollPhysics?
How the TabBar's scroll view should respond to user input.
finalinherited
preferredSize Size
A size whose height depends on if the tabs have both icons and text.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
splashBorderRadius BorderRadius?
Defines the clipping radius of splashes that extend outside the bounds of the tab.
finalinherited
splashFactory InteractiveInkFeatureFactory?
Creates the tab bar's InkWell splash factory, which defines the appearance of "ink" splashes that occur in response to taps.
finalinherited
tabAlignment TabAlignment?
Specifies the horizontal alignment of the tabs within a TabBar.
finalinherited
tabHasTextAndIcon bool
Returns whether the TabBar contains a tab with both text and icon.
no setterinherited
tabs List<Widget>
Typically a list of two or more Tab widgets.
finalinherited
unselectedLabelColor Color?
The color of unselected tab labels.
finalinherited
unselectedLabelStyle TextStyle?
The text style of the unselected tab labels.
finalinherited

Methods

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

Static Methods

withDefaultController<K extends Object>({Key? key, required Map<K, Widget> tabs, bool isScrollable = false, EdgeInsetsGeometry? padding, Color? indicatorColor, bool automaticIndicatorColorAdjustment = true, double indicatorWeight = 2.0, EdgeInsetsGeometry indicatorPadding = EdgeInsets.zero, Decoration? indicator, TabBarIndicatorSize? indicatorSize, Color? labelColor, TextStyle? labelStyle, EdgeInsetsGeometry? labelPadding, Color? unselectedLabelColor, TextStyle? unselectedLabelStyle, DragStartBehavior dragStartBehavior = DragStartBehavior.start, MaterialStateProperty<Color?>? overlayColor, MouseCursor? mouseCursor, bool? enableFeedback, ValueChanged<K>? onTap, ScrollPhysics? physics, InteractiveInkFeatureFactory? splashFactory, BorderRadius? splashBorderRadius}) PreferredSizeWidget
Creates the widget that will look up its controller from the widget tree.