This commit is contained in:
otsmr 2026-10-06 22:13:32 +02:00
parent 8cf0eb53c6
commit c3d0858823

View file

@ -94,6 +94,8 @@ class _AvatarMakerCustomizerState extends State<AvatarMakerCustomizer>
with SingleTickerProviderStateMixin { with SingleTickerProviderStateMixin {
late AvatarMakerController avatarMakerController; late AvatarMakerController avatarMakerController;
bool _controllerCreatedInternally = false; bool _controllerCreatedInternally = false;
late final VoidCallback _handleControllerChanged;
late final VoidCallback _handleTabChanged;
/// Number of displayed categories in the customizer widget. /// Number of displayed categories in the customizer widget.
late int nbrDisplayedCategories; late int nbrDisplayedCategories;
@ -121,22 +123,23 @@ class _AvatarMakerCustomizerState extends State<AvatarMakerCustomizer>
vsync: this, vsync: this,
); );
tabController.addListener(() { _handleTabChanged = () {
setState(() {}); if (mounted) setState(() {});
}); };
tabController.addListener(_handleTabChanged);
// Add listener to the controller // Add listener to the controller
avatarMakerController.addListener(() { _handleControllerChanged = () {
setState(() {}); if (mounted) setState(() {});
}); };
avatarMakerController.addListener(_handleControllerChanged);
} }
@override @override
void dispose() { void dispose() {
// Remove the listener avatarMakerController.removeListener(_handleControllerChanged);
avatarMakerController.removeListener(() { tabController.removeListener(_handleTabChanged);
setState(() {}); tabController.dispose();
});
// Only dispose the controller if we created it // Only dispose the controller if we created it
if (_controllerCreatedInternally) { if (_controllerCreatedInternally) {