Listview 插入新记录后如何重新加载列表?

Listview 插入新记录后如何重新加载列表?,listview,flutter,dart,Listview,Flutter,Dart,我有一个listView,它是使用Future Builder创建的所有数据都是从服务器获取的,在我添加了一条新记录后,一条记录成功添加到数据库中,并导航到listView页,但我的列表没有刷新,我如何刷新我的列表 FutureBuilder<List<NewAddressModel>>( future: myAddressList, builder: (context, snapshot) { print(snapshot); if (snaps

我有一个listView,它是使用
Future Builder创建的
所有数据都是从服务器获取的,在我添加了一条新记录后,一条记录成功添加到数据库中,并
导航到listView页,但我的列表没有刷新,我如何刷新我的列表

FutureBuilder<List<NewAddressModel>>(
  future: myAddressList,
  builder: (context, snapshot) {
    print(snapshot);
    if (snapshot.hasData)
      return addressList(snapshot.data);
    else if (snapshot.hasError)
      return _buildErrorPage(snapshot.error);
    else
      return _buildLoadingPage();
  },
),

这是因为当你从一个页面导航到另一个页面时,你应该添加whencomplete方法,如@Abjox所说,因此,当您导航回Listview页面时,将调用build方法,futurebuilder将获取数据并在您插入数据库的列表中显示数据。

这是因为当您从一个页面导航到另一个页面时,您应该在推送中添加whencomplete方法,如@Abjox所说,因此,当您导航回Listview页面时,将调用build方法,futurebuilder将获取数据并在您插入数据库的列表中显示数据。

使用Navigator.push()。当完成((){setState(){}})时,如@Abjox所建议的那样

void navigateToAddAddress() async {
    Navigator.of(context).push
      (new MaterialPageRoute(builder: (context) => AddAddress()))
        .whenComplete((){setState(() {
//          use here that method by which you load data into listView    
        });});
  }
按照@Abjox的建议,在完成((){setState(){}})时使用Navigator.push()

void navigateToAddAddress() async {
    Navigator.of(context).push
      (new MaterialPageRoute(builder: (context) => AddAddress()))
        .whenComplete((){setState(() {
//          use here that method by which you load data into listView    
        });});
  }

只需将
Future
函数调用重新分配给
myAddressList
,然后调用
setState

Future<void> navigateToAddAddress() async {
  await Navigator.push(
    context,
    MaterialPageRoute(
      builder: (context) => AddAddress(),
    ),
  );
  setState((){
    myAddressList = _fetchAddressListFromServer();
  });
}
Future navigateToAddAddress()异步{
等待导航器(
上下文
材料路线(
生成器:(上下文)=>AddAddress(),
),
);
设置状态(){
myAddressList=_fetchAddressListFromServer();
});
}

只需将
Future
函数调用重新分配给
myAddressList
,然后调用
setState

Future<void> navigateToAddAddress() async {
  await Navigator.push(
    context,
    MaterialPageRoute(
      builder: (context) => AddAddress(),
    ),
  );
  setState((){
    myAddressList = _fetchAddressListFromServer();
  });
}
Future navigateToAddAddress()异步{
等待导航器(
上下文
材料路线(
生成器:(上下文)=>AddAddress(),
),
);
设置状态(){
myAddressList=_fetchAddressListFromServer();
});
}


您是否尝试使用Navigator.push()。完成(({setState(){}}})后@Abjox您能告诉我删除的相同情况吗?如果我删除一条记录,该记录会被删除,但列表不会刷新。我使用@override void didChangeDependencies(){super.didChangeDependencies();_myList=hitApiGetData();}解决了这个问题这是正确的方法吗?你是否尝试使用Navigator.push().whenComplete((){setState(){}})?@Abjox你能告诉我同样的删除方法吗?如果我删除一条记录,该记录会被删除,但列表不会刷新。我使用@override void didChangeDependencies(){super.didChangeDependencies();\u myList=hitApiGetData()}解决了这个问题这是正确的方法吗?如果我删除了一条记录,你能告诉我删除的相同情况吗?该记录被删除,但列表没有刷新?我使用@override void didChangeDependencies(){super.didChangeDependencies();_myList=hitApiGetData();}解决了这个问题这是正确的方法吗?你应该查看他的帖子,仅供参考:。如果可以,那就太好了。在这个查询中,请再给我一个帮助。如果我删除一条记录,你能告诉我同样的事情吗?如果我删除了一条记录,该记录被删除了,但列表没有刷新。我用@override void didChangeDependencies(){super.didChangeDependencies();_myList=hitApiGetData();}解决了这个问题这是正确的方法吗?你应该查看他的帖子,仅供参考:。如果可以的话,那就太好了。请在这个查询中再给我一个帮助嘿,你能在这个查询中帮我吗@Toyed我给你的问题添加了一个答案。你可以试着在这个问题上帮助我@Toyed我给你的问题添加了答案。你可以试试
Future<void> navigateToAddAddress() async {
  await Navigator.push(
    context,
    MaterialPageRoute(
      builder: (context) => AddAddress(),
    ),
  );
  setState((){
    myAddressList = _fetchAddressListFromServer();
  });
}