首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振onStretchTrigger不起作用。框架期间的建造计划

颤振onStretchTrigger不起作用。框架期间的建造计划
EN

Stack Overflow用户
提问于 2021-09-24 09:27:35
回答 1查看 808关注 0票数 0

如果我使用刷新指示器或按钮点击,此代码将完全正常工作。

但是,如果在SliverAppBar for onStretchTrigger function中使用它,则无法工作。

代码语言:javascript
复制
onStretchTrigger: () async {
 setState(() {
 myVariable = myFutureData();
 });
},

我所犯的错误:

I/颤振(31102):在帧内计划构建。

I/颤振(31102):在构建、布局和绘制小部件树时,计划使用一个新的框架来重新构建小部件树。

I/颤振(31102):这可能是因为setState()是从布局或画图回调调用的。如果需要对小部件树进行更改,则应该在构建该树时应用它。相反,为后续帧安排更改会导致接口滞后于一个帧。如果这样做是为了使您的构建依赖于在布局时测量的大小,请考虑使用LayoutBuilder、CustomSingleChildLayout或CustomMultiChildLayout。

另一方面,如果一个帧延迟是想要的效果,例如,因为这是一个动画,那么考虑使用SchedulerBinding.addPostFrameCallback或使用AnimationController来触发动画,在帧后回调中调度帧。I/颤振(31102):I/颤振(31102):#0

WidgetsBinding._handleBuildScheduled。包装:颤振/…/widget/binding.dart:747

I/颤振(31102):#1 WidgetsBinding._handleBuildScheduled包:颤振/…/widget/binding.dart:770

I/颤振(31102):#2 BuildOwner.scheduleBuildFor软件包:颤振/…/widgets/Frawork.DAT:2476

I/颤振(31102):#3 Element.markNeedsBuild包:颤振/…/widgets/Frawork.DAT:4324

I/颤振(31102):#4 State.setState软件包:颤振/…/widgets/Frawork.DAT:1108

I/颤振(31102):#5 _HomeScreenState.build。包装:fesale/显示屏/屏幕_fesale。省:197

I/颤振(31102):#6 _HomeScreenState.build。包装:fesale/显示屏/屏幕_fesale。省:195

I/颤振(31102):#7 RenderSliverPersistentHeader.layoutChild包:颤振/…/渲染/条子_持久的头文件:257

I/颤振(31102):#8

RenderSliverFloatingPersistentHeader.performLayout包:颤振/…/渲染/条子_持久的头文件:708

I/颤振(31102):#9 RenderObject.layout包:颤振/…/渲染/Object.Dart:1858年

I/颤振(31102):#10 RenderViewportBase.layoutChildSeq

请帮助找不到任何解决办法:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-24 09:50:50

初始:首先:您不需要在其中放置async,因为您没有使用await关键字,它只是一个函数调用,返回值被分配给您的变量。

UPDATEonStretchTrigger实际上需要一个AsyncCallback,所以对于这个用例,必须使用async关键字-对不起!

第二:您的错误消息说明了造成这种情况的原因,并提供了几种解决方案:

...这可能是因为setState()是从布局或画图回调调用的。..。考虑使用SchedulerBinding.addPostFrameCallback在帧后回调中调度帧.

所以现在你可以:

代码语言:javascript
复制
SchedulerBinding.instance?.addPostFrameCallback((_) {
  setState(() => myVariable = myFutureData());
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69312675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档