Performance Textfield控制器方法使性能降低
我正在筛选我的GridView.builder列表,如下所示:Performance Textfield控制器方法使性能降低,performance,gridview,dart,flutter,onchange,Performance,Gridview,Dart,Flutter,Onchange,我正在筛选我的GridView.builder列表,如下所示: onSearchTextChanged(String text) async { if (text.isEmpty) { _searchList = _productList.toList(); setState(() { }); return; } _searchList = _productList.where((product) => product.name.toLowerCase().conta
onSearchTextChanged(String text) async {
if (text.isEmpty) {
_searchList = _productList.toList();
setState(() {
});
return;
}
_searchList = _productList.where((product) => product.name.toLowerCase().contains(text.toLowerCase()) ||
product.type.toLowerCase().contains(text.toLowerCase())).toList();
setState(() {});
}
但是,当我在文本字段上键入时,性能会下降,有时当我删除文本或快速键入时,性能会下降到2.5 fps
这是我的Gridview生成器
GridView.builder(
primary: false,
shrinkWrap: true,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: itemWidth / itemHeight,
),
itemCount: _searchList.length,
itemBuilder: (BuildContext context, int index) {
return _searchList[index];
}));
始终在setState()调用中设置状态变量 使onSearchTextChanged()函数保存搜索文本,并启动一个Future.delayed()函数,该函数在短时间延迟后执行搜索和更新。请参阅:
您可以使用数据结构来加速搜索操作。不幸的是,我找不到用达特朗写的。你可以编一个。该包不合适,因为它只支持设置功能,不支持映射功能。始终在setState()调用中设置状态变量 使onSearchTextChanged()函数保存搜索文本,并启动一个Future.delayed()函数,该函数在短时间延迟后执行搜索和更新。请参阅: 您可以使用数据结构来加速搜索操作。不幸的是,我找不到用达特朗写的。你可以编一个。该软件包不适合,因为它只支持设置功能,不支持映射功能