Я хочу найти слово в большом текстовом файле, который является локальным (без вызова HTTP или API). Я использую его с FutureBuilder, потому что только текстовый файл открывается asyn c (остальные - нет), но само открытие происходит очень быстро. Я хочу отобразить CircularProgressIndicator во время поиска, но мне кажется, что в момент завершения открытия файла, CircularProgressIndicator останавливает , и у меня появляется пустой экран для долгое время поиска.
Что я могу сделать, чтобы отобразить экран загрузки при выполнении обычного для l oop?
У меня есть что-то вроде этого псевдокода:
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;
}
}
}