GlassTabBar.bottom constructor
- required List<
GlassTab> tabs, - required int selectedIndex,
- required ValueChanged<
int> onTabSelected, - Key? key,
- GlassTabBarExtraButton? extraButton,
- ScrollController? scrollController,
- Widget? bottomAccessory,
- bool bottomAccessoryEnabled = true,
- double bottomAccessorySpacing = 6.0,
- double? bottomAccessoryHeight,
- double spacing = 8,
- double horizontalPadding = 20,
- double verticalPadding = 20,
- double barHeight = 64,
- double barBorderRadius = _kDefaultBottomBorderRadius,
- EdgeInsetsGeometry tabPadding = const EdgeInsets.symmetric(horizontal: 4),
- double iconLabelSpacing = 4,
- bool enableBlend = true,
- bool groupBackdrop = true,
- double blendAmount = 10,
- LiquidGlassSettings? settings,
- bool showIndicator = true,
- Color? indicatorColor,
- LiquidGlassSettings? indicatorSettings,
- double indicatorPinchStrength = 0.4,
- Color? selectedIconColor,
- Color? unselectedIconColor,
- Color? selectedLabelColor,
- Color? unselectedLabelColor,
- TextStyle? selectedLabelStyle,
- TextStyle? unselectedLabelStyle,
- double iconSize = 24,
- double labelFontSize = 11,
- TextStyle? textStyle,
- Duration glowDuration = const Duration(milliseconds: 300),
- double glowBlurRadius = 32,
- double glowSpreadRadius = 8,
- double glowOpacity = 0.6,
- GlassQuality? quality,
- GlassQuality? backgroundQuality,
- double magnification = 1.15,
- double innerBlur = 0.0,
- MaskingQuality maskingQuality = MaskingQuality.high,
- GlobalKey<
State< ? backgroundKey,StatefulWidget> > - double? tabWidth,
- double? indicatorBorderRadius,
- EdgeInsetsGeometry indicatorExpansion = const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
- Color? interactionGlowColor,
- double? interactionGlowRadius,
- GlassInteractionBehavior interactionBehavior = GlassInteractionBehavior.full,
- double pressScale = 1.04,
- bool platformViewBackdrop = false,
- bool adaptiveBrightness = false,
- ValueChanged<
Brightness> ? onBrightnessChanged, - ValueListenable<
Brightness> ? brightnessOverride,
Creates a floating bottom tab bar — the iOS 26 UITabBarController equivalent.
This constructor replaces GlassBottomBar with identical
parameter names and defaults. Existing GlassBottomBar code migrates by
search-replacing GlassBottomBar( → GlassTabBar.bottom( and
GlassBottomBarTab( → GlassTab(.
Play-pill / mini-player accessory
Pass a widget to bottomAccessory to render a persistent overlay (e.g. a
mini-player) above the glass tab bar pill — identical to iOS 26's
tabViewBottomAccessory modifier.
Supply bottomAccessoryHeight so that GlassScaffold can include the
accessory in its effectiveBottomBarHeight (via preferredSize) and
correctly compute body edge-fades. If omitted the scroll area will be
inset only by the pill height.
Toggle visibility with bottomAccessoryEnabled: the accessory animates
in/out with an AnimatedSize so there is no jump.
Implementation
const GlassTabBar.bottom({
required List<GlassTab> tabs,
required int selectedIndex,
required ValueChanged<int> onTabSelected,
Key? key,
GlassTabBarExtraButton? extraButton,
ScrollController? scrollController,
Widget? bottomAccessory,
bool bottomAccessoryEnabled = true,
double bottomAccessorySpacing = 6.0,
double? bottomAccessoryHeight,
double spacing = 8,
double horizontalPadding = 20,
double verticalPadding = 20,
double barHeight = 64,
double barBorderRadius = _kDefaultBottomBorderRadius,
EdgeInsetsGeometry tabPadding = const EdgeInsets.symmetric(horizontal: 4),
double iconLabelSpacing = 4,
bool enableBlend = true,
bool groupBackdrop = true,
double blendAmount = 10,
LiquidGlassSettings? settings,
bool showIndicator = true,
Color? indicatorColor,
LiquidGlassSettings? indicatorSettings,
double indicatorPinchStrength = 0.4,
Color? selectedIconColor,
Color? unselectedIconColor,
Color? selectedLabelColor,
Color? unselectedLabelColor,
TextStyle? selectedLabelStyle,
TextStyle? unselectedLabelStyle,
double iconSize = 24,
double labelFontSize = 11,
TextStyle? textStyle,
Duration glowDuration = const Duration(milliseconds: 300),
double glowBlurRadius = 32,
double glowSpreadRadius = 8,
double glowOpacity = 0.6,
GlassQuality? quality,
GlassQuality? backgroundQuality,
double magnification = 1.15,
double innerBlur = 0.0,
MaskingQuality maskingQuality = MaskingQuality.high,
GlobalKey? backgroundKey,
double? tabWidth,
double? indicatorBorderRadius,
EdgeInsetsGeometry indicatorExpansion =
const EdgeInsets.symmetric(horizontal: 12, vertical: 8),
Color? interactionGlowColor,
double? interactionGlowRadius,
GlassInteractionBehavior interactionBehavior =
GlassInteractionBehavior.full,
double pressScale = 1.04,
bool platformViewBackdrop = false,
bool adaptiveBrightness = false,
ValueChanged<Brightness>? onBrightnessChanged,
ValueListenable<Brightness>? brightnessOverride,
}) : this._(
key: key,
placement: _GlassTabBarPlacement.bottom,
tabs: tabs,
selectedIndex: selectedIndex,
onTabSelected: onTabSelected,
extraButton: extraButton,
scrollController: scrollController,
bottomAccessory: bottomAccessory,
bottomAccessoryEnabled: bottomAccessoryEnabled,
bottomAccessorySpacing: bottomAccessorySpacing,
bottomAccessoryHeight: bottomAccessoryHeight,
spacing: spacing,
horizontalPadding: horizontalPadding,
verticalPadding: verticalPadding,
barHeight: barHeight,
barBorderRadius: barBorderRadius,
tabPadding: tabPadding,
iconLabelSpacing: iconLabelSpacing,
enableBlend: enableBlend,
groupBackdrop: groupBackdrop,
blendAmount: blendAmount,
settings: settings,
showIndicator: showIndicator,
indicatorColor: indicatorColor,
indicatorSettings: indicatorSettings,
indicatorPinchStrength: indicatorPinchStrength,
selectedIconColor: selectedIconColor,
unselectedIconColor: unselectedIconColor,
selectedLabelColor: selectedLabelColor,
unselectedLabelColor: unselectedLabelColor,
selectedLabelStyle: selectedLabelStyle,
unselectedLabelStyle: unselectedLabelStyle,
iconSize: iconSize,
labelFontSize: labelFontSize,
textStyle: textStyle,
glowDuration: glowDuration,
glowBlurRadius: glowBlurRadius,
glowSpreadRadius: glowSpreadRadius,
glowOpacity: glowOpacity,
quality: quality,
backgroundQuality: backgroundQuality,
magnification: magnification,
innerBlur: innerBlur,
maskingQuality: maskingQuality,
backgroundKey: backgroundKey,
tabWidth: tabWidth,
indicatorBorderRadius: indicatorBorderRadius,
indicatorExpansion: indicatorExpansion,
interactionGlowColor: interactionGlowColor,
interactionGlowRadius: interactionGlowRadius,
interactionBehavior: interactionBehavior,
pressScale: pressScale,
platformViewBackdrop: platformViewBackdrop,
adaptiveBrightness: adaptiveBrightness,
onBrightnessChanged: onBrightnessChanged,
brightnessOverride: brightnessOverride,
);