这并不理想,但有些作用。首先,我创建了一个provider
类并添加了以下内容;
class AudioWidgetProvider with ChangeNotifier {
int refreshIndex;
setRefreshIndex (ri) {
refreshIndex = ri;
return refreshIndex;
}
}
然后在我PageView Builder
的第一页,我这样做了;
Widget build(context) {
var audioWidgetProvider = Provider.of<AudioWidgetProvider>(context);
return
PreloadPageView.builder(
controller: PreloadPageController(initialPage: audioWidgetProvider.refreshIndex?? 0),
然后进入 EditPage(第二个屏幕),我这样做了;
onPressed: () async {
audioWidgetProvider.setRefreshIndex(currentIndex);
Navigator.pushReplacement(context,new MaterialPageRoute(builder: (BuildContext context) => EditPage()),); }
最后我这样做是为了返回重新加载的 PageView 并滚动到已编辑的页面;
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) =>HomePage()));
现在唯一的问题是 PageView 列表来自 PHP/Mysql 查询,如果从 Mysql 数据库将新项目添加到列表中,我不确定该怎么办。这意味着 currentIndex 将是错误的。但我想这是另一个问题的主题。