在 Flutter 中,要获取一个 widget 的渲染大小,需要在该 widget 已经渲染完成后才能获取到。如果需要在 widget 还没有渲染完成时获取其大小,可以使用 'WidgetsBinding' 的 'addPostFrameCallback' 方法。

例如,假设有一个 'Container' widget,需要在其渲染完成后获取其大小,可以使用以下代码:

class MyWidget extends StatefulWidget {
  @override
  _MyWidgetState createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  Size _size;

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) {
      setState(() {
        _size = context.size;
      });
    });
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      width: 100,
      height: 100,
      color: Colors.blue,
      child: Text('Hello World'),
    );
  }
}

在 'initState' 方法中,通过 'WidgetsBinding.instance.addPostFrameCallback' 注册一个回调函数,在 widget 渲染完成后执行。在回调函数中,可以通过 'context.size' 获取 widget 的大小,并通过 'setState' 更新状态。在 'build' 方法中,返回一个 'Container' widget,用于测试获取大小的效果。

Flutter 获取 Widget 渲染尺寸:在渲染前获取大小的技巧

原文地址: https://www.cveoy.top/t/topic/jBoc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录