官方的状态例子写的看的很难晕
试过动态修改构造函数的 animation, controller ,stateMachine 都不行,
后面 尝试 下面这种写法,可以
class LoginAnim extends StatefulWidget {
const LoginAnim({Key? key}) : super(key: key);
@override
State createState() => _LoginAnimState();
}
class _LoginAnimState extends State {
@override
Widget build(BuildContext context) {
return Column(
children: [
ElevatedButton(onPressed: (){
_hitHand();
}, child: Text("handUp")),
ElevatedButton(onPressed: (){
_hitBump();
}, child: Text("handDown")),
_buildAnim(),
],
);
}
SizedBox _buildAnim() {
return SizedBox(
height: 280,
child: RiveAnimation.asset(
RivLoginAnim.name,
onInit: _onRiveInit,
),
);
}
Artboard? _artBoard;
void _onRiveInit(Artboard artBoard) {
_artBoard = artBoard;
}
void _hitBump() {
super.setState(() {
_artBoard?.addController(SimpleAnimation(RivLoginAnim.hands_down));
});
}
void _hitHand() {
super.setState(() {
_artBoard?.addController(SimpleAnimation(RivLoginAnim.hands_up));
});
}
@override
void dispose() {
super.dispose();
}
}```
动态addController 可以刷新



