如何查看小部件重建的时间?

时间:2019-12-24 15:15:44

标签: flutter dart

Code source

是否有任何技巧可以知道小部件已被重建?

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

Screen capture

4 个答案:

答案 0 :(得分:2)

Flutter实际上具有内置功能,可完全您在DevTools inspector中要实现的目标:

Demonstration

这称为 Repaint Rainbow (重绘彩虹),可以在Android Studio(即IntelliJ)中启用,如上面所示,也可以直接在Dart DevTools中启用:

DevTools screenshot

重新粉刷彩虹

  

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

来自the linked article

注释

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

  • 您不知道是否已在代码中重建了窗口小部件,因为这与框架的工作方式背道而驰-您显然可以通过将其集成到build或{{1}中来捕获任何构建或绘画调用}功能,但您实际上不应该这样做,因为构造和绘制应该是幂等的

答案 1 :(得分:0)

每次重新构建小部件时,build()被称为print(),因此您可以在build()中写一个const functions = require('firebase-functions'); // // Create and Deploy Your First Cloud Functions // // https://firebase.google.com/docs/functions/write-firebase-functions exports.addNumbers = functions.https.onCall((data) => { const firstNumber = data.firstNumber; const secondNumber = data.secondNumber; if (!Number.isFinite(firstNumber) || !Number.isFinite(secondNumber)) { // Throwing an HttpsError so that the client gets the error details. throw new functions.https.HttpsError('invalid-argument', 'The function must be called with ' + 'two arguments "firstNumber" and "secondNumber" which must both be numbers.'); } return { firstNumber: firstNumber, secondNumber: secondNumber, operator: '+', operationResult: firstNumber + secondNumber, }; }); 并跟踪何时重新构建小部件

答案 2 :(得分:0)

如果您使用的是android studio,则可以打开Flutter Performance,然后在“小部件重建统计信息”中选中“跟踪小部件重建” enter image description here

答案 3 :(得分:-1)

您可能不知道,也不要自己造一个词来自己获得该价值。

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