我正在尝试关注此 tutorial创建 DropDown
.但我不能复制他的代码,因为 Flutter 2.0
禁止它,因为我可以使用以下几行:
void findDropdownData() {
RenderBox renderBox = actionKey.currentContext!.findRenderObject()!;
height = renderBox.size.height;
width = renderBox.size.width;
Offset? offset = renderBox.localToGlobal(Offset.zero);
xPosition = offset!.dx;
yPosition = offset.dy;
}
如您所见,我尝试添加一些 !
和 ?
但它仍然无法正常工作。主要问题是findRenderObject
返回 RenderObject
但我需要它是 RenderBox
...知道这里有什么问题吗?想不通。。
最佳答案
解决方案比我想象的要容易:
只需使用 as
像这样:
RenderBox renderBox =
actionKey.currentContext!.findRenderObject()! as RenderBox;
关于Flutter 将 RenderObject 转换为 RenderBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67045440/