类型“RenderSliverList”不是类型转换中类型“RenderBox”的子类型- Flutter

r6l8ljro  于 2023-03-04  发布在  Flutter
关注(0)|答案(2)|浏览(293)

嗨,伙计们,我想实现Flutter弹出插件,我只是复制了代码,并粘贴到我的项目中弹出插件链接
https://pub.dev/packages/popover
但我得到这个错误当我点击popover功能

类型“RenderSliverList”不是类型转换中类型“RenderBox”的子类型

在调试模式下,它显示错误行为

final box = widget.context.findRenderObject() as RenderBox;
lymgl2op

lymgl2op1#

您正在使用RenderSliverListcontext(很可能类似于SliverListDelegate上下文)。
问题是这个上下文在滚动视图 * 内部 *,所以它的呈现对象不是RenderBox,而是RenderSliver
这一点很重要,因为它们使用的约束不同,而这正是您想要的。
解决方案是使用不同的上下文,例如使用您的build方法之一,它应该可以工作。

agxfikkp

agxfikkp2#

这个问题似乎与另一个堆栈溢出问题有关,也是关于使用flutter popover包的问题。我有一个答案,我建议人们在这里看看答案:
类型“RenderSliverList”不是类型转换中类型“RenderBox”的子类型
基本上你需要把触发窗口小部件(button/textbutton/iconbutton等) Package 成一个类,这样窗口小部件的上下文将被弹出菜单项使用,使弹出菜单出现在触发按钮(窗口小部件)的点击点。
希望有帮助。

相关问题