diff --git a/lib/ui/screens/wonder_details/wonders_details_screen.dart b/lib/ui/screens/wonder_details/wonders_details_screen.dart index aac6f0b2..d885bb99 100644 --- a/lib/ui/screens/wonder_details/wonders_details_screen.dart +++ b/lib/ui/screens/wonder_details/wonders_details_screen.dart @@ -21,7 +21,7 @@ class _WonderDetailsScreenState extends State late final _tabController = TabController( length: 4, vsync: this, - initialIndex: widget.tabIndex, + initialIndex: _clampIndex(widget.tabIndex), )..addListener(_handleTabChanged); AnimationController? _fade; @@ -31,7 +31,7 @@ class _WonderDetailsScreenState extends State @override void didUpdateWidget(covariant WonderDetailsScreen oldWidget) { if (oldWidget.tabIndex != widget.tabIndex) { - _tabController.index = widget.tabIndex; + _tabController.index = _clampIndex(widget.tabIndex); } super.didUpdateWidget(oldWidget); } @@ -42,6 +42,8 @@ class _WonderDetailsScreenState extends State super.dispose(); } + int _clampIndex(int index) => index.clamp(0, 3); + void _handleTabChanged() { _fade?.forward(from: 0); setState(() {});