diff --git a/package/lib/src/controls/tabs.dart b/package/lib/src/controls/tabs.dart index b123025e9..7549589c8 100644 --- a/package/lib/src/controls/tabs.dart +++ b/package/lib/src/controls/tabs.dart @@ -75,6 +75,9 @@ class _TabsControlState extends State Widget build(BuildContext context) { debugPrint("TabsControl build: ${widget.control.id}"); + // keep only visible tabs + widget.children.retainWhere((c) => c.isVisible); + var tabs = StoreConnector( distinct: true, converter: (store) => ControlsViewModel.fromStore( @@ -121,12 +124,12 @@ class _TabsControlState extends State var indicatorBorderRadius = parseBorderRadius(widget.control, "indicatorBorderRadius"); - var inidicatorBorderSide = parseBorderSide( - Theme.of(context), widget.control, "inidicatorBorderSide"); + var indicatorBorderSide = parseBorderSide( + Theme.of(context), widget.control, "indicatorBorderSide"); var indicatorPadding = parseEdgeInsets(widget.control, "indicatorPadding"); - var inidicatorColor = HexColor.fromString(Theme.of(context), + var indicatorColor = HexColor.fromString(Theme.of(context), widget.control.attrString("indicatorColor", "")!) ?? TabBarTheme.of(context).indicatorColor ?? Theme.of(context).colorScheme.primary; @@ -148,7 +151,7 @@ class _TabsControlState extends State : TabBarIndicatorSize.label) : TabBarTheme.of(context).indicatorSize, indicator: indicatorBorderRadius != null || - inidicatorBorderSide != null || + indicatorBorderSide != null || indicatorPadding != null ? UnderlineTabIndicator( borderRadius: indicatorBorderRadius ?? @@ -156,17 +159,17 @@ class _TabsControlState extends State const BorderRadius.only( topLeft: Radius.circular(2), topRight: Radius.circular(2)), - borderSide: inidicatorBorderSide ?? + borderSide: indicatorBorderSide ?? themeIndicator?.borderSide ?? BorderSide( width: themeIndicator?.borderSide.width ?? 2, color: themeIndicator?.borderSide.color ?? - inidicatorColor), + indicatorColor), insets: indicatorPadding ?? themeIndicator?.insets ?? EdgeInsets.zero) : TabBarTheme.of(context).indicator, - indicatorColor: inidicatorColor, + indicatorColor: indicatorColor, labelColor: HexColor.fromString(Theme.of(context), widget.control.attrString("labelColor", "")!) ?? TabBarTheme.of(context).labelColor ?? Theme.of(context).colorScheme.primary, diff --git a/sdk/python/packages/flet-core/src/flet_core/tabs.py b/sdk/python/packages/flet-core/src/flet_core/tabs.py index ade61ffc1..4185a6900 100644 --- a/sdk/python/packages/flet-core/src/flet_core/tabs.py +++ b/sdk/python/packages/flet-core/src/flet_core/tabs.py @@ -25,8 +25,9 @@ def __init__( tab_content: Optional[Control] = None, ref: Optional[Ref] = None, icon: Optional[str] = None, + visible: Optional[bool] = None, ): - Control.__init__(self, ref=ref) + Control.__init__(self, ref=ref, visible=visible) self.text = text self.icon = icon self.__content: Optional[Control] = None