Respect the tabIndex param when on WonderDetails screen
This commit is contained in:
parent
3ce1d3a68d
commit
00e3dcc234
@ -8,9 +8,9 @@ import 'package:wonders/ui/screens/wonder_details/wonder_details_tab_menu.dart';
|
||||
import 'package:wonders/ui/screens/wonder_events/wonder_events.dart';
|
||||
|
||||
class WonderDetailsScreen extends StatefulWidget with GetItStatefulWidgetMixin {
|
||||
WonderDetailsScreen({Key? key, required this.type, this.initialTabIndex = 0}) : super(key: key);
|
||||
WonderDetailsScreen({Key? key, required this.type, this.tabIndex = 0}) : super(key: key);
|
||||
final WonderType type;
|
||||
final int initialTabIndex;
|
||||
final int tabIndex;
|
||||
|
||||
@override
|
||||
State<WonderDetailsScreen> createState() => _WonderDetailsScreenState();
|
||||
@ -21,13 +21,21 @@ class _WonderDetailsScreenState extends State<WonderDetailsScreen>
|
||||
late final _tabController = TabController(
|
||||
length: 4,
|
||||
vsync: this,
|
||||
initialIndex: widget.initialTabIndex,
|
||||
initialIndex: widget.tabIndex,
|
||||
)..addListener(_handleTabChanged);
|
||||
AnimationController? _fade;
|
||||
|
||||
double? _tabBarSize;
|
||||
bool _useNavRail = false;
|
||||
|
||||
@override
|
||||
void didUpdateWidget(covariant WonderDetailsScreen oldWidget) {
|
||||
if (oldWidget.tabIndex != widget.tabIndex) {
|
||||
_tabController.index = widget.tabIndex;
|
||||
}
|
||||
super.didUpdateWidget(oldWidget);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_tabController.dispose();
|
||||
@ -35,6 +43,7 @@ class _WonderDetailsScreenState extends State<WonderDetailsScreen>
|
||||
}
|
||||
|
||||
void _handleTabChanged() {
|
||||
context.go(ScreenPaths.wonderDetails(widget.type, tabIndex: _tabController.index));
|
||||
_fade?.forward(from: 0);
|
||||
setState(() {});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user