首页 > 解决方案 > Flutter context.findRenderObject() 返回 null

问题描述

我正在尝试根据小部件的大小做一些手势运动逻辑。

为了获得大小,我在构建方法中调用以下代码......

final RenderBox renderBox = context.findRenderObject();

这有时会返回 null?

是什么导致它返回null?有没有更可靠的方法来获取 Widget 的大小?

标签: flutterdartwidget

解决方案


您需要确保小部件当前正在渲染(例如,在屏幕上),或者在尝试访问它之前给它一个渲染时间,例如,initState()如果这是来自有状态小部件,请在您的上调用它:

WidgetsBinding.instance.addPostFrameCallback(() {
   final RenderBox renderBox = context.findRenderObject();
});

推荐阅读