在做滑动列表时通过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;
});
}
}