【问题标题】:Flutter cast RenderObject to RenderBoxFlutter 将 RenderObject 转换为 RenderBox
【发布时间】:2021-08-30 02:15:43
【问题描述】:

我正在尝试关注这个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...知道这里有什么问题吗?想不通..

【问题讨论】:

    标签: flutter dart drop-down-menu casting render


    【解决方案1】:

    解决方案比我想象的要容易:

    只需像这样使用as

    RenderBox renderBox =
        actionKey.currentContext!.findRenderObject()! as RenderBox;
    

    【讨论】:

      【解决方案2】:

      有时actionkey 可能会显示错误,所以只需使用 as

      RenderBox renderBox = context.findRenderObject()! as RenderBox;
      

      【讨论】:

        猜你喜欢
        • 2021-07-24
        • 1970-01-01
        • 2021-11-07
        • 2021-08-31
        • 2021-11-28
        • 2021-03-17
        • 2020-05-01
        • 2022-12-22
        • 2023-04-07
        相关资源
        最近更新 更多