So I'm trying to add animation when adding item to gridview. the animation work, but had a litle problem. the way i insert the data is like a stack so last item inserted is the first item in list and every time an item added, the the animation of items that already in the list keep restarting

class _MainListItemState extends State<MainListItem>
    with SingleTickerProviderStateMixin {
  AnimationController animationController;
  Animation<double> opacityAnimation;
  @override
  void initState() {
    super.initState();
    animationController = AnimationController(duration: const Duration(milliseconds: 500), vsync: this);
    opacityAnimation = Tween<double>(begin: 0, end: 1).animate(animationController);
    animationController.forward();
  }
  @override
  Widget build(BuildContext context) {
    return AnimatedBuilder(
      animation: animationController,
      builder: (BuildContext buiild, Widget mine) => Opacity(
        opacity: opacityAnimation.value,
        child: ItemWidget()
      ),
    );
  }
}