Кажется, что
Widget createListView(BuildContext context, AsyncSnapshot snapshot) {
// ...
children: List.generate(values.length, (index) {
имеет неправильную длину.
Имейте в виду, что ваш build метод может быть вызван в любое время (и при навигации он будет вызван точно).
Поэтому твой
getRegister1()
вызывается много раз, и поэтому вам нужно больше исследовать этот метод, поскольку код вашей HelperDatabase1 не предоставлен.
(может, вот ваша проблема ...
var catLocal = (await HelperDatabase1().displayDefCatRelation())
var defCatLocal = (await HelperDatabase1().display()) +
cat.add(catLocal[i].c); // maybe this actually saves in your db/cache
но я не уверен в этом
)
Еще одна вещь, на которую вам следует обратить внимание, это то, что ваш getRegister1 () должен быть «получен ранее».
Проверьте этот снайпер из документов флаттера .
FutureBuilder<String>(
future: _calculation, // a previously-obtained Future<String> or null
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.none:
return Text('Press button to start.');
case ConnectionState.active:
case ConnectionState.waiting:
return Text('Awaiting result...');
case ConnectionState.done:
if (snapshot.hasError)
return Text('Error: ${snapshot.error}');
return Text('Result: ${snapshot.data}');
}
return null; // unreachable
},
)