0

我正在使用颤振钩子包为屏幕上的元素设置动画,但显然我做错了什么,因为元素没有重建为动画。这是我的代码。

class Ball extends HookWidget {
  @override
  Widget build(BuildContext context) {
    final xController = useAnimationController(
      duration: Duration(seconds: 3),
      lowerBound: 0,
      upperBound: 2,
      initialValue: 1,
    );

    final yController = useAnimationController(
      duration: Duration(seconds: 3),
      lowerBound: 0,
      upperBound: 2,
      initialValue: 1,
    );

    useEffect(() {
      xController.repeat(reverse: true);
      yController.repeat(reverse: true);

      return () {};
    });

    return Align(
      alignment: Alignment(
        xController.value - 1,
        yController.value - 1,
      ),
      child: Container(
        width: 12,
        height: 12,
        decoration: BoxDecoration(
          color: Colors.grey[900],
          shape: BoxShape.circle,
        ),
      ),
    );
  }
}

渲染时,此小部件位于堆栈内。在运行时或构建时都不会引发错误。

4

1 回答 1

2

对于将来查看此内容的任何人,您必须执行此操作

final xController = useAnimationController({ ... })
useAnimation(xController)
于 2021-04-26T20:29:21.353 回答