Анимационный контейнерный виджет остается в начальной точке анимации ie. анимация не запускается, но если вместо списка виджетов, как созданный мной список particles
, используется один виджет, то анимация работает нормально. Почему это так и как мне это исправить? Заранее спасибо!
Вот мой код:
import 'package:flutter/material.dart';
import 'package:flutter/animation.dart';
import 'package:flutter/physics.dart';
import 'dart:math';
void main() => runApp(PhysicsAnimation());
class PhysicsAnimation extends StatefulWidget {
_PhysicsAnimation createState() => _PhysicsAnimation();
}
class _PhysicsAnimation extends State<PhysicsAnimation>
with TickerProviderStateMixin{
AnimationController controller;
GravitySimulation simulation;
List<Widget> particles=[];
bool isLoad=true;
Random random=new Random();
@override
void initState() {
super.initState();
simulation = GravitySimulation(
100, // acceleration
0.0, // starting point
2000.0, // end point
5, // starting velocity
);
controller =
AnimationController(vsync: this, upperBound: 800)
..addListener(() {
setState(() {});
});
controller.animateWith(simulation);
}
@override
Widget build(BuildContext context) {
if (isLoad) {
for(int i=0;i<20;i++){
particles.add(Positioned(
left: 50+random.nextDouble()*100,
top: controller.value,
height: 10,
width: 10,
child: Container(
color: Colors.redAccent,
)));}
}
isLoad=false;
return MaterialApp(
home: Stack(
children:
particles
),
);
}
@override
void dispose() {
controller.dispose();
super.dispose();
}
}