在做滑動清單時通過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;
});
}
}
複制