createTabBarTheme static method
TabBarThemeData
createTabBarTheme(
- Palette colors,
- TextTheme textTheme
)
Implementation
static TabBarThemeData createTabBarTheme(
Palette colors,
TextTheme textTheme,
) {
final labelColor = WidgetStateColor.resolveWith((states) {
if (states.contains(WidgetState.selected)) {
return colors.text;
} else if (states.contains(WidgetState.hovered)) {
return colors.textHoveredText;
} else if (states.contains(WidgetState.pressed)) {
return colors.textSplashedText;
} else {
return colors.backgroundText;
}
});
return TabBarThemeData(
// Oddly, this still is required even if indicatorColor is set.
indicator: UnderlineTabIndicator(
borderSide: BorderSide(color: colors.fill, width: 2),
),
indicatorColor: colors.fill,
indicatorSize: TabBarIndicatorSize.label,
dividerColor: Colors.transparent,
labelColor: colors.text,
labelStyle: textTheme.labelLarge,
unselectedLabelColor: labelColor,
unselectedLabelStyle: textTheme.labelLarge,
overlayColor: WidgetStateProperty.resolveWith((Set<WidgetState> states) {
if (states.contains(WidgetState.selected)) {
return colors.textSplashed;
} else if (states.contains(WidgetState.hovered)) {
return colors.textHovered;
} else if (states.contains(WidgetState.pressed)) {
return colors.textSplashed;
} else {
return colors.background;
}
}),
splashFactory: splashFactory,
mouseCursor: null, // use default view
tabAlignment: TabAlignment.fill,
);
}