Flutter 中的 addPostFrameCallback 方法用于在 StatefulWidget 更新完成后执行一些操作,例如在获取 Widget 的宽高之后进行布局调整。它需要传入一个回调函数,该回调函数会在 Widget 更新完成之后立即执行。
示例代码:
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
double _width = 0;
double _height = 0;
@override
Widget build(BuildContext context) {
return Container(
width: _width,
height: _height,
child: Text('Hello World'),
);
}
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() {
_width = 100;
_height = 100;
});
});
}
}
在上述例子中,我们需要在 Widget 渲染完成后再根据实际的宽高对其进行布局。我们使用 addPostFrameCallback 方法来监听 Widget 更新完成事件,并在回调函数中进行布局调整。这样,我们就能够在 Widget 的实际宽高确定之后再进行布局,而不会出现占位问题。