如何解决获取特定数据后如何更新ListView?
我遇到过这个问题,
有什么帮助吗?
class ListTest extends StatefulWidget {
@override
_ListTestState createState() => _ListTestState();
}
class _ListTestState extends State<ListTest> {
List<XFile> _files = [];
Future <List<XFile>> _openFile(BuildContext context) async {
final XTypeGroup pngTypeGroup = XTypeGroup(
label: 'PNGs',extensions: ['png'],);
_files = await openFiles(acceptedTypeGroups: [
pngTypeGroup,]);
}
@override
Widget build(BuildContext context) {
return Column(
children: [
RaisedButton(
color: Colors.blue,textColor: Colors.white,child: Text('Press to open images (png)'),onpressed: () {
_openFile(context);
);
}
),Expanded(
child: ListView.builder(
itemCount: _files.length,itemBuilder: (context,index) {
return Text(_files[index].path);
},),],);
}
}
解决方法
您需要调用 setState 来重建小部件。我建议您阅读this。
您可以尝试以下操作:
var _newFiles = await openFiles(acceptedTypeGroups: [
pngTypeGroup,]);
setState(() {
_files = _newFiles;
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。