我想在本地的大文本文件中搜索单词(不调用任何HTTP或API)。我将它与FutureBuilder一起使用,因为only文本文件的打开是异步的(其余不是)但开放本身非常快。我想在搜索时呈现CircularProgressIndicator,但似乎在完成文件[[<< [opening的那一刻,CircularProgressIndicator stops时,对于较长的搜索时间,我有一个空白屏幕。
在进行regular for循环时,我还能怎么做以显示加载屏幕?我所拥有的类似于此伪代码:
Future<Array> searchData() async{
results = [];
someBigTextFile= await getTextFile();
for(row in someBigTextFile){ // this loop takes a lot of time
if(row contains this.query) results.add(row);
}
return results;
}
Widget buildResults(BuildContext context) {
return FutureBuilder(
future: searchData(),
builder: (BuildContext context, AsyncSnapshot<Array> snapshot){
if (snapshot.connectionState != ConnectionState.done) {
print("not done yet");
return CircularProgressIndicator();
} else {
return snapshot.data;
}
}
}
Future<Array> searchData() async{
results = [];
await getTextFile().then((someBigTextFile){
for(row in someBigTextFile){ // this loop takes a lot of time
if(row contains this.query) results.add(row);
}
return results;
});
}