单击后退按钮后如何修复ListView上的重复错误?

时间:2019-04-16 09:48:49

标签: dart flutter flutter-layout

enter image description here

仅在单击“后退”按钮后重复发生。

我在github中上传了完整的listview代码。 listview code

1 个答案:

答案 0 :(得分:0)

似乎

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()。 从flutter docs中检查该抓取程序。

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
  },
)