我正在尝试创建一个可在Flutter中管理某些AnimationController
的mixin,但是要创建动画,我们必须为其提供一个TickerProvider
。通常,这将由另一个mixin TickerProviderStateMixin
提供。
这迫使我强制转换mixin实例以使其起作用:
mixin MultiAnimationStateMixin on State {
...
_anim1 = AnimationController(vsync: this as TickerProviderStateMixin);
...
}
这似乎很脆弱。没办法为MultiAnimationStateMixin
定义它应该要求TickerProviderStateMixin
吗?
答案 0 :(得分:1)
有一种方法:
mixin MultiAnimationStateMixin on State, TickerProvider {
...
_anim1 = AnimationController(vsync: this);
...
}
在on
子句中具有两种(或更多)类型意味着必须将mixin应用于实现两个(或所有)接口的对象。