记一次flutter列表卡顿的优化

  • 内容
  • 评论
  • 相关

在做滑动列表时通过profile发现GPU和FPS一直爆红。打包出来的应用滑动也很卡。

原因:频繁调用setState造成的。自己的粗心大意导致的。列表需要根据滑动的高度显示一个返回顶部的按钮。所以用了controller的监听,但是没有具体去判断条件,如下

  void _scrollControllerListener(){
    setState(() {
      if (scrollController.position.extentBefore > 600) {
        showGoTop = true;
      } else {
        showGoTop = false;
      }
    });
  }

改进:

 void _scrollControllerListener(){
    if (scrollController.position.extentBefore > 600 && showGoTop != true) {
      setState(() {
        showGoTop = true;
      });
    } else if (scrollController.position.extentBefore < 600 && showGoTop != false) {
      setState(() {
        showGoTop = false;
      });
    }
  }

 

 

 

 

评论

1条评论
  1. Gravatar 头像

    ddd 回复

    谢谢 我也是这个问题 我这个去控制另外一个contral,结果不需要setState都能刷新UI 我去掉就OK了

发表评论

电子邮件地址不会被公开。