问题:假设只有 2 个屏幕。当在第一个屏幕上按下第二个屏幕时,过渡动画会抖动并且不流畅。原因是第二个屏幕有一个非常昂贵的小部件。我试图等到过渡动画完全完成,然后渲染昂贵的小部件。目前,我只是推迟使用
await Future.delayed(const Duration(milliseconds: 200));
我想要达到的目标
class SecondScreenState extends State<SecondScreen> {
@override
void initState() {
super.initState();
initialize();
}
initialize() async {
await waitTillTransitionFinishes;
loadCostlyWidgets;
}
}
我正在如下导航
Navigator.push(context, MaterialPageRoute(
builder: (context) => SecondScreen()
)
)
答案 0 :(得分:0)
你试过了吗
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
WidgetsBinding.instance.addPostFrameCallback(
(_) {
loadCostlyWidgets;
},
);
}