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';
|
import 'package:wonders/ui/screens/wonder_events/wonder_events.dart';
|
||||||
|
|
||||||
class WonderDetailsScreen extends StatefulWidget with GetItStatefulWidgetMixin {
|
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 WonderType type;
|
||||||
final int initialTabIndex;
|
final int tabIndex;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<WonderDetailsScreen> createState() => _WonderDetailsScreenState();
|
State<WonderDetailsScreen> createState() => _WonderDetailsScreenState();
|
||||||
@ -21,13 +21,21 @@ class _WonderDetailsScreenState extends State<WonderDetailsScreen>
|
|||||||
late final _tabController = TabController(
|
late final _tabController = TabController(
|
||||||
length: 4,
|
length: 4,
|
||||||
vsync: this,
|
vsync: this,
|
||||||
initialIndex: widget.initialTabIndex,
|
initialIndex: widget.tabIndex,
|
||||||
)..addListener(_handleTabChanged);
|
)..addListener(_handleTabChanged);
|
||||||
AnimationController? _fade;
|
AnimationController? _fade;
|
||||||
|
|
||||||
double? _tabBarSize;
|
double? _tabBarSize;
|
||||||
bool _useNavRail = false;
|
bool _useNavRail = false;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didUpdateWidget(covariant WonderDetailsScreen oldWidget) {
|
||||||
|
if (oldWidget.tabIndex != widget.tabIndex) {
|
||||||
|
_tabController.index = widget.tabIndex;
|
||||||
|
}
|
||||||
|
super.didUpdateWidget(oldWidget);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_tabController.dispose();
|
_tabController.dispose();
|
||||||
@ -35,6 +43,7 @@ class _WonderDetailsScreenState extends State<WonderDetailsScreen>
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _handleTabChanged() {
|
void _handleTabChanged() {
|
||||||
|
context.go(ScreenPaths.wonderDetails(widget.type, tabIndex: _tabController.index));
|
||||||
_fade?.forward(from: 0);
|
_fade?.forward(from: 0);
|
||||||
setState(() {});
|
setState(() {});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user