JetTab class

A customizable tab widget with extensive styling options.

Supports both simple widget-based tabs and AutoRoute-based navigation.

For simple tabs with widgets:

JetTab.simple(
  tabs: ['Home', 'Profile', 'Settings'],
  children: [
    HomeView(),
    ProfileView(),
    SettingsView(),
  ],
  indicatorColor: Colors.blue,
  labelColor: Colors.blue,
)

For AutoRoute integration:

JetTab.router(
  routes: [
    HomeRoute(),
    ProfileRoute(),
    SettingsRoute(),
  ],
  tabs: ['Home', 'Profile', 'Settings'],
  indicatorColor: Colors.blue,
  labelColor: Colors.blue,
)
Inheritance

Constructors

JetTab.router({Key? key, required List<PageRouteInfo<Object?>> routes, required List<String> tabs, Widget builder(BuildContext context, Widget child)?, bool isScrollable = false, TabAlignment? tabAlignment, Color? indicatorColor, Color? labelColor, Color? unselectedLabelColor, TextStyle? labelStyle, TextStyle? unselectedLabelStyle, TabBarIndicatorSize? indicatorSize, EdgeInsetsGeometry? indicatorPadding, Color? dividerColor, double? dividerHeight, ValueChanged<int>? onTap, double? tabBarHeight, ScrollPhysics? physics, Duration? animationDuration, List<Widget>? customTabs})
Creates a tab widget integrated with AutoRoute.
const
JetTab.simple({Key? key, required List<String> tabs, required List<Widget> children, int? initialLength, int initialIndex = 0, TabController? controller, bool isScrollable = false, TabAlignment? tabAlignment, Color? indicatorColor, Color? labelColor, Color? unselectedLabelColor, TextStyle? labelStyle, TextStyle? unselectedLabelStyle, TabBarIndicatorSize? indicatorSize, EdgeInsetsGeometry? indicatorPadding, Color? dividerColor, double? dividerHeight, ValueChanged<int>? onTap, double? tabBarHeight, ScrollPhysics? physics, Duration? animationDuration, List<Widget>? customTabs})
Creates a simple tab widget with widget children.
const

Properties

animationDuration → Duration?
Animation duration for tab transitions.
final
builder → Widget Function(BuildContext context, Widget child)?
Builder function that receives the context and active tab content (router mode only).
final
children → List<Widget>?
List of widgets to display in each tab's content area (simple mode only).
final
controller → TabController?
External tab controller (optional). If provided, will use this instead of creating a new one.
final
customTabs → List<Widget>?
Custom tab widgets (overrides tabs parameter if provided).
final
dividerColor → Color?
Color of the divider line below the tabs.
final
dividerHeight → double?
Height of the divider line below the tabs.
final
hashCode → int
The hash code for this object.
no setterinherited
indicatorColor → Color?
Color of the tab indicator line.
final
indicatorPadding → EdgeInsetsGeometry?
Padding around the tab indicator.
final
indicatorSize → TabBarIndicatorSize?
Size of the tab indicator (tab or label width).
final
initialIndex → int
Initial index of the selected tab (defaults to 0).
final
initialLength → int?
Total number of tabs (should match tabs.length and children.length).
final
isScrollable → bool
Whether tabs can be scrolled horizontally when they overflow.
final
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
labelColor → Color?
Color of the selected tab label.
final
labelStyle → TextStyle?
Text style for selected tab labels.
final
onTap → ValueChanged<int>?
Callback when a tab is tapped.
final
physics → ScrollPhysics?
Scroll physics for the tab view content.
final
routes → List<PageRouteInfo<Object?>>?
List of tab routes to navigate between (router mode only).
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
tabAlignment → TabAlignment?
How tabs are aligned when isScrollable is true.
final
tabBarHeight → double?
Fixed height for the tab bar area.
final
tabs → List<String>
List of tab titles (required if customTabs is not provided).
final
unselectedLabelColor → Color?
Color of unselected tab labels.
final
unselectedLabelStyle → TextStyle?
Text style for unselected tab labels.
final
useAutoRoute → bool
Internal flag to determine if using AutoRoute or simple mode.
final

Methods

build(BuildContext context) → Widget
Describes the part of the user interface represented by this widget.
override
createElement() → _StatelessHookElement
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