我已经建立了一个应用程序颤振,显示一个ListView的数据从google中提取。我想做的是让列表自动刷新当数据在谷歌页上被改变。我不确定这是否可能,但如果有任何帮助,我们将不胜感激。
class BodFullList extends StatefulWidget {
@override
_BodFullListState createState() => _BodFullListState();
}
class _BodFullListState extends State<BodFullList> {
final StreamController _streamController = StreamController();
List<DGL> dgl = [];
int index = 0;
@override
void initState() {
super.initState();
getDGL();
}
Future getDGL({int? index}) async {
final dgl = await BodSheetsApi.getAll();
setState(() {
this.dgl = dgl;
});
}
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(
title: const Text(MyApp.title),
centerTitle: true,
),
body:RefreshIndicator(
onRefresh: getDGL,
child: ListView.builder(
itemCount: dgl.length,
itemBuilder: (context, index){
return Card (
child: ListTile(
onTap: () {
Navigator.push(
context, MaterialPageRoute(
builder: (context) => BodEntryEdit(),
settings: RouteSettings(
arguments: dgl[index],
)
)
);
},
title: Text(dgl[index].loc)
),
);
},
),
)
);
}发布于 2021-12-18 01:43:22
实际上,你提供的信息是不够的。但是,正如我想象的那样,您只获取了一次数据,而没有侦听。若要侦听更改,需要使用websockets。我记得GoogleSheet允许从那里使用webhooks,您可以实现您想要的任何东西。
https://stackoverflow.com/questions/70400171
复制相似问题