记一次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;
      });
    }
  }

 

 

 

 

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注