我的应用程序包含几个页面。在应用程序栏中,我有一个自制的有状态小部件,带有一个显示新消息数量的徽章。当我滑动以刷新数据时,如果徽章值发生更改,徽章将运行一个小动画。
问题是徽章值来自范围模型。如何从作用域模型类运行动画。我试图让作用域模型类包含 animationController 以及一个函数。它适用于第一个和第二个屏幕。但是当我再次导航回第一页并拉动刷新时。就像动画控制器处于不良状态一样。
作用域模型中的代码:
Function _runNotificationAnimation;
set runNotificationAnimation(Function fun) => _runNotificationAnimation = fun;
void _setNotificationCount(int count) {
_notificationCount = count;
if (count > 0 && _runNotificationAnimation != null) {
_runNotificationAnimation();
}
notifyListeners();
}
运行动画的函数
runAnim() {
setState(() {
controller.reset();
controller.forward(from: 0.0);
});
}
颤动的错误:
[VERBOSE-2:shell.cc(184)] Dart 错误:未处理的异常:NoSuchMethodError:在 null 上调用了方法“停止”。接收者:空尝试调用:停止(取消:真)0 Object.noSuchMethod(dart:core/runtime/libobject_patch.dart:50:5)1 AnimationController.stop(包:flutter/src/animation/animation_controller.dart:650: 13) 2 AnimationController.value= (package:flutter/src/animation/animation_controller.dart:349:5) 3 AnimationController.reset (package:flutter/src/animation/animation_controller.dart:370:5) 4 NotificationIconState.runAnim (包:volvopenta/widgets/notificaton_icon.dart:38:16) 5 SettingsModel._setNotificationCount (package:volvopenta/scoped-models/settings-model.dart:57:7) 6 SettingsModel.updateAppData (package:volvopenta/scoped-models/设置-model.dart:185: