LanarsInc / animated-bottom-navigation-bar-flutter

AnimatedBottomNavigationBar is a customizable widget inspired by
https://dribbble.com/shots/7134849-Simple-Tab-Bar-Animation
Other
353 stars 106 forks source link

I was disabling this widget in the screen. But as it was a sudden incident the tickers were not finished and is not disposing. Animation Controller should be disposed properly. #65

Closed aswanath closed 8 months ago

aswanath commented 8 months ago

======== Exception caught by widgets library ======================================================= The following assertion was thrown while finalizing the widget tree: _AnimatedBottomNavigationBarState#c8e8e(tickers: tracking 2 tickers) was disposed with an active Ticker.

_AnimatedBottomNavigationBarState created a Ticker via its TickerProviderStateMixin, but at the time dispose() was called on the mixin, that Ticker was still active. All Tickers must be disposed before calling super.dispose().

Tickers used by AnimationControllers should be disposed by calling dispose() on the AnimationController itself. Otherwise, the ticker will leak.

The offending ticker was: _WidgetTicker(created by _AnimatedBottomNavigationBarState#c8e8e) The stack trace when the _WidgetTicker was actually created was:

0 new Ticker. (package:flutter/src/scheduler/ticker.dart:71:40)

1 new Ticker (package:flutter/src/scheduler/ticker.dart:73:6)

2 new _WidgetTicker (package:flutter/src/widgets/ticker_provider.dart)

3 TickerProviderStateMixin.createTicker (package:flutter/src/widgets/ticker_provider.dart:296:34)

4 new AnimationController (package:flutter/src/animation/animation_controller.dart:247:21)

5 _AnimatedBottomNavigationBarState._startBubbleAnimation (package:numlocal/animated_bottom_navigation_bar.dart:324:25)

6 _AnimatedBottomNavigationBarState.didUpdateWidget (package:numlocal/animated_bottom_navigation_bar.dart:319:7)

7 StatefulElement.update (package:flutter/src/widgets/framework.dart:5643:55)

8 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

9 Element.updateChildren (package:flutter/src/widgets/framework.dart:3964:32)

10 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6896:17)

11 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

12 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

13 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

14 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5)

15 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

16 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

17 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

18 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5)

19 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

20 Element.updateChildren (package:flutter/src/widgets/framework.dart:3964:32)

21 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6896:17)

22 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

23 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

24 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

25 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5)

26 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

27 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

28 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11)

29 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

30 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5)

31 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

32 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

33 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11)

34 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

35 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5)

36 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

37 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

38 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

39 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5)

40 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

41 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

42 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11)

43 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

44 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5)

45 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

46 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6743:14)

47 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

48 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

49 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

50 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5)

51 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

52 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6743:14)

53 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

54 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

55 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11)

56 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

57 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5)

58 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

59 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

60 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11)

61 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

62 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5)

63 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

64 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

65 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

66 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5)

67 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

68 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

69 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

70 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5)

71 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

72 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

73 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

74 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5)

75 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

76 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

77 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11)

78 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

79 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5)

80 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

81 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

82 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

83 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5)

84 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

85 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

86 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11)

87 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

88 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5)

89 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15)

90 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16)

91 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11)

92 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7)

93 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2895:19)

94 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:984:21)

95 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:457:5)

96 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1325:15)

97 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1255:9)

98 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1113:5)

99 _invoke (dart:ui/hooks.dart:312:13)

100 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:383:5)

101 _drawFrame (dart:ui/hooks.dart:283:31)

When the exception was thrown, this was the stack:

0 TickerProviderStateMixin.dispose. (package:flutter/src/widgets/ticker_provider.dart:343:13)

1 TickerProviderStateMixin.dispose (package:flutter/src/widgets/ticker_provider.dart:361:6)

2 StatefulElement.unmount (package:flutter/src/widgets/framework.dart:5680:11)

3 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:2067:13)

4 _InactiveElements._unmount. (package:flutter/src/widgets/framework.dart:2065:7)

5 MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6834:16)

6 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:2063:13)

7 _InactiveElements._unmount. (package:flutter/src/widgets/framework.dart:2065:7)

8 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5523:14)

9 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:2063:13)

10 _InactiveElements._unmount. (package:flutter/src/widgets/framework.dart:2065:7)

11 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5523:14)

12 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:2063:13)

13 ListIterable.forEach (dart:_internal/iterable.dart:49:13)

14 _InactiveElements._unmountAll (package:flutter/src/widgets/framework.dart:2076:25)

15 BuildOwner.lockState (package:flutter/src/widgets/framework.dart:2755:15)

16 BuildOwner.finalizeTree (package:flutter/src/widgets/framework.dart:3165:7)

17 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:987:19)

18 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:457:5)

19 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1325:15)

20 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1255:9)

21 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1113:5)

22 _invoke (dart:ui/hooks.dart:312:13)

23 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:383:5)

24 _drawFrame (dart:ui/hooks.dart:283:31)

==================================================================================================== D/InputTransport(11739): Input channel destroyed: 'ClientS', fd=182

======== Exception caught by animation library ===================================================== The following assertion was thrown while notifying listeners for AnimationController: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 5004 pos 12: '_lifecycleState != _ElementLifecycle.defunct': is not true.

Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause. In either case, please report this assertion by filing a bug on GitHub: https://github.com/flutter/flutter/issues/new?template=2_bug.yml

When the exception was thrown, this was the stack:

2 Element.markNeedsBuild (package:flutter/src/widgets/framework.dart:5004:12)

3 State.setState (package:flutter/src/widgets/framework.dart:1223:15)

4 _AnimatedBottomNavigationBarState._startBubbleAnimation. (package:numlocal/animated_bottom_navigation_bar.dart:336:9)

5 AnimationLocalListenersMixin.notifyListeners (package:flutter/src/animation/listener_helpers.dart:161:19)

6 AnimationController._tick (package:flutter/src/animation/animation_controller.dart:830:5)

7 Ticker._tick (package:flutter/src/scheduler/ticker.dart:249:12)

8 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1325:15)

9 SchedulerBinding.handleBeginFrame. (package:flutter/src/scheduler/binding.dart:1177:11)

10 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:633:13)

11 SchedulerBinding.handleBeginFrame (package:flutter/src/scheduler/binding.dart:1175:17)

12 SchedulerBinding._handleBeginFrame (package:flutter/src/scheduler/binding.dart:1092:5)

13 _invoke1 (dart:ui/hooks.dart:328:13)

14 PlatformDispatcher._beginFrame (dart:ui/platform_dispatcher.dart:351:5)

15 _beginFrame (dart:ui/hooks.dart:272:31)

(elided 2 frames from class _AssertionError) The AnimationController notifying listeners was: AnimationController#1de53(⏭ 1.000; paused) ====================================================================================================`