fix
This commit is contained in:
parent
8cf0eb53c6
commit
c3d0858823
1 changed files with 13 additions and 10 deletions
|
|
@ -94,6 +94,8 @@ class _AvatarMakerCustomizerState extends State<AvatarMakerCustomizer>
|
|||
with SingleTickerProviderStateMixin {
|
||||
late AvatarMakerController avatarMakerController;
|
||||
bool _controllerCreatedInternally = false;
|
||||
late final VoidCallback _handleControllerChanged;
|
||||
late final VoidCallback _handleTabChanged;
|
||||
|
||||
/// Number of displayed categories in the customizer widget.
|
||||
late int nbrDisplayedCategories;
|
||||
|
|
@ -121,22 +123,23 @@ class _AvatarMakerCustomizerState extends State<AvatarMakerCustomizer>
|
|||
vsync: this,
|
||||
);
|
||||
|
||||
tabController.addListener(() {
|
||||
setState(() {});
|
||||
});
|
||||
_handleTabChanged = () {
|
||||
if (mounted) setState(() {});
|
||||
};
|
||||
tabController.addListener(_handleTabChanged);
|
||||
|
||||
// Add listener to the controller
|
||||
avatarMakerController.addListener(() {
|
||||
setState(() {});
|
||||
});
|
||||
_handleControllerChanged = () {
|
||||
if (mounted) setState(() {});
|
||||
};
|
||||
avatarMakerController.addListener(_handleControllerChanged);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
// Remove the listener
|
||||
avatarMakerController.removeListener(() {
|
||||
setState(() {});
|
||||
});
|
||||
avatarMakerController.removeListener(_handleControllerChanged);
|
||||
tabController.removeListener(_handleTabChanged);
|
||||
tabController.dispose();
|
||||
|
||||
// Only dispose the controller if we created it
|
||||
if (_controllerCreatedInternally) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue