我在第一页中有一个 ListView 生成器,它从第二页接收内容(项目)。当我点击第二页的提交按钮时,我使用:
Navigator.of(context).pop
这让我回到了第一个屏幕。
问题是除非我重新启动应用程序,否则它不会更新列表中创建的项目。
我试过: 1) 调用 First Page 的实例并使用:
firstPageinstance.setState((){});
2) 我还尝试从调用 setState 的 First Page 类中调用一个函数:
firstPageinstance.funtionWhichCallsetStateinFirstageClass();
但是这些都不起作用。该列表仅在我重新启动应用程序时更新。
附言列表项从 SQLite 数据库中保存和调用。另外,如果您需要更多详细信息,请告诉我。
最佳答案
当导航到您的 SecondPage 时等待这样的结果:
bool isUpdated = await Navigator.push(context, MaterialPageRoute(builder: (context) => SecondPage()),)
if(isUpdated) // do your list update logic here
返回首页时(点击提交按钮),发送预期值,例如:
Navigator.pop(context, true);
有用的阅读:https://flutter.dev/docs/cookbook/navigation/returning-data
关于dart - (Flutter) 从第二页设置第一页的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55449815/