【发布时间】:2022-08-04 18:38:26
【问题描述】:
我激活了“Highlight repaints”,并看到在使用带有 AnimationController repeat() 的小部件时,整个屏幕都会一直被重新绘制。
有谁知道这是否是预期的行为?
这是一个代码示例。如果我在任何屏幕中使用小部件,即使我只是返回一个 Container() 并且根本不实际使用控制器,整个屏幕也会不断地重新绘制。
class ProgressBar extends StatefulWidget {
const ProgressBar({
Key? key,
}) : super(key: key);
@override
State<ProgressBar> createState() => _ProgressBarState();
}
class _ProgressBarState extends State<ProgressBar>
with SingleTickerProviderStateMixin {
AnimationController? _animController;
@override
void initState() {
super.initState();
_animController =
AnimationController(duration: const Duration(seconds: 4), vsync: this)
..repeat();
}
@override
void dispose() {
_animController?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container();
}
}
-
你能包括你在哪里使用控制器吗?
-
@YeasinSheikh 我之前使用完整代码创建了另一个问题。 stackoverflow.com/questions/72397431/… 问题是即使我不使用创建的控制器,整个屏幕总是会被重新绘制。在上面的代码示例中,我只返回一个 emty Container,但如果在任何屏幕中使用 ProgressBar(),屏幕就会一直重新绘制。
标签: flutter flutter-layout flutter-animation