颤抖,很热,在setState时不调用StreamBuilder

时间:2020-11-02 10:39:41

标签: flutter flutter-layout flutter-animation

我的屏幕上有一个AnimatedBackground,它不断像这样循环播放

Stack(
 children: [
  AnimatedContainer(
       duration: Duration(seconds: 2),
          onEnd: () {
              setState(() {

                 //doing some animation repeatedly

                  });
                },
               ),
              StreamBuilder(
                   //keeping rebuild because of the above setState
              ),
         ],
    ),

由于setState()(问题),我现在很困,重建如此频繁

我想在此屏幕内使用StreamBuilder,因为信息在不断变化

如何不循环StreamBuilder?该如何实现?

1 个答案:

答案 0 :(得分:0)

由于setState({})方法更新了您调用它的整个窗口小部件,因此您需要以某种方式分隔窗口小部件。这个想法是,您在其中调用setState方法的小部件应该在小部件的树中较低,而包含StreamBuilder的小部件应位于上方。结果,调用setState方法将不会触发带有StreamBuilder的窗口小部件重新运行。