TTI可交互时间是如何检测的?
创建容器后startTime为开始时间,在WidgetBinding.instance?.addPostFrameCallBack首帧渲染后创建一Timer 50ms检测一次检测范围(默认除去导航栏部分)是否存在超过一个Text,如果存在将本次检测时间减去startTime为TTI时间,如果不存在继续检测知道超时。
scanChildElement(Element element) {
element.visitChildElements((childElement) {
if (texts.length > 1) return;
final widget = childElement.widget;
if (widget is Text) {
texts.add(widget.data ?? '');
}
});
}
如何优化TTI?
在首页预加载列表数据
尽量延迟加载组件,首屏没有展示的UI尽量不初始化。