天天看點

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

複制