Flutter:ClipPath() 小部件中的断言失败错误
Posted
技术标签:
【中文标题】Flutter:ClipPath() 小部件中的断言失败错误【英文标题】:Flutter: Assertion failed error in ClipPath() widget 【发布时间】:2020-11-23 13:23:15 【问题描述】:我收到了这个错误。
Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/surface/path/path_ref.dart:831:12 isValid is not true The relevant error-causing widget was ClipPath
我使用的依赖是:flutter_custom_clippers: ^1.1.1
每当我重新启动或进行热刷新时,UI 都会正确构建,但几秒钟后我在调试控制台中收到此错误。
以下是我的小部件结构。
ClipPath(
clipper: WaveClipperTwo(flip: true, reverse: true),
child: Container(
padding: EdgeInsets.all(10),
width: double.infinity,
height: 350,
color: Colors.black87,
child: ...
)
);
我该如何解决这个错误。
【问题讨论】:
【参考方案1】:我不知道实际发生了什么,但我将ClipPath()
包裹在一个容器中,并赋予它与其中的容器相同的高度,即 350
Container height: 350, child: ClipPath( clipper: WaveClipperTwo(flip: true, reverse: true), child: Container( padding: EdgeInsets.all(10), width: double.infinity, height: 350, color: Colors.black87, child: ... ) ), );
然后我没有收到任何错误。
我仍然不知道那个错误是关于什么的,如果你知道请随时告诉我:)
【讨论】:
感谢您的解决方案!在 Flutter web 上滚动带有 clipBehavior 和 borderRadius 的容器引发了类似的错误。除了错误之外没有明显的影响。我将容器做成了一个大小合适的盒子,并在其中嵌套了一个 ClipRRect,错误就消失了。神秘。以上是关于Flutter:ClipPath() 小部件中的断言失败错误的主要内容,如果未能解决你的问题,请参考以下文章
Flutter Cards:如何在 Flutter 中创建自定义卡片小部件
Flutter 中的 OverlayEntry 和 Stack 小部件有啥区别?