如何查看 Widget 何时重建?

CH *_*ing 4 dart flutter

代码来源

有什么技巧可以知道小部件已重建吗?

作为演示,即如果我们在每次重建时随机给小部件着色,它看起来像这样:

屏幕截图

cre*_*not 7

扑居然还内置功能的正是你试图在达到什么DevTools检查:

示范

这称为Repaint Rainbow,它可以在 Android Studio(即 IntelliJ)中启用,如上所示或直接在 Dart DevTools 中启用:

开发者工具截图

重绘彩虹

重绘时在图层上显示旋转颜色。

来自链接的文章

笔记

  • 重绘的原因可能有很多,看到小部件重建本质上并不意味着您触发了重建,因为它也可能来自树中的其他地方。

  • 您无法知道某个小部件是否已在代码中重新构建,因为这与框架的工作方式背道而驰 - 您显然可以通过将其集成到您的build或paint函数中来捕获任何构建或绘制调用,但您真的不应该这样做,因为构建和绘制应该是幂等的。


Tok*_*ris 6

如果您使用android studio,您可以打开Flutter Performance并在Widget重建统计中选中Track widgets重建在此输入图像描述


Rém*_*let 0

你无法知道它,也不应该自己造一个词来获得这个值。

这是反模式,因为小部件重建的次数永远不应该对输出产生影响。