Skip to content

Tabs

Tabs let users switch between different sections of content within the same context. They provide quick navigation without leaving the current screen.

Common alternative names:
Segmented control


Simple text-based tabs with clean styling.


Tabs with icons positioned above the text labels.


Custom tabs with icons positioned below the text labels using custom layout.


PropertyTypeDescription
tabsList<Widget>The list of tabs to display. Required.
controllerTabController?Tab controller for managing tab state. Auto-created if null.
indicatorColorColor?Color of the line below the selected tab. Defaults to accent color.
labelColorColor?Color of the selected tab’s label. Defaults to accent color.
unselectedLabelColorColor?Color of unselected tab labels. Defaults to subtle foreground color.
indicatorSizeTabBarIndicatorSizeHow the indicator size is computed. Defaults to TabBarIndicatorSize.tab.
indicatorPaddingEdgeInsetsGeometryPadding around the tab indicator. Defaults to EdgeInsets.zero.
labelPaddingEdgeInsetsGeometryPadding around each tab’s label. Defaults to EdgeInsets.zero.
onTapValueChanged<int>?Callback when a tab is tapped. Receives the tapped tab’s index.
indicatorWeightdoubleThickness of the selected tab indicator line. Defaults to 1.0.
isScrollableboolWhether tabs can scroll horizontally. Defaults to false.
overlayColorWidgetStateProperty<Color?>?Color shown during tab interactions. Defaults to transparent.