Хук Flutter useAnimationController не перестраивает виджет
Я использую пакет flutter hooks для анимации элемента на экране, но я, очевидно, сделал что-то не так, поскольку элемент не перестраивается для анимации. это код, который у меня есть.
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,
),
),
);
}
}
При визуализации этот виджет находится внутри стека. Ни во время выполнения, ни во время сборки ошибок не возникает.
1 ответ
Решение
Для тех, кто будет смотреть это в будущем, вы должны сделать это
final xController = useAnimationController({ ... })
useAnimation(xController)