我对数字转换动画有疑问。
我希望动画总是从最后生成的数字开始继续,但是它总是重复进行的第一个值转换
我已经在寻找遇到类似问题的人,但没有找到
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
Animation numberTransitionAnimation;
AnimationController animationController;
@override
void initState() {
super.initState();
animationController = AnimationController(duration: Duration(seconds: 1), vsync: this);
numberTransitionAnimation = IntTween(begin: currentNumber, end: newNumber).animate(CurvedAnimation(parent: animationController, curve: Curves.linear));
}
int selectedNumber;
int currentNumber = 0;
int newNumber = 0;
int total = 2000;
void selectNumber(selectedNumber){
newNumber = selectedNumber + currentNumber;
currentNumber = newNumber;
animationController.reset();
animationController.forward();
}
@override
Widget build(BuildContext context) {
return AnimatedBuilder(
animation: animationController,
builder: (BuildContext context, Widget child){
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(numberTransitionAnimation.value.toString() + " / $total"),
// \/ Test to see if the method is working
Text(currentNumber.toString()),
RaisedButton(onPressed: () => selectNumber(100), child: Text('100')),
RaisedButton(onPressed: ()=> selectNumber(200), child: Text('200')),
RaisedButton(onPressed: ()=> selectNumber(300), child: Text('300')),
],
)
),
);
}
);
}
}
我要求您忽略代码的组织,最终通过更改代码来寻找解决方案,从而使组织混乱
如果有人能帮助我,我将不胜感激