flutter - 我的 ListView.Builder 没有构建任何东西并显示空白屏幕
问题描述
我正在制作 SD 卡中的本地歌曲列表,并且我成功获取了它们,但是每当我尝试将它们放入其中时,ListView.Builder
它都不会在屏幕上显示任何内容
这是我的代码ListView.Builder
@override Widget build(BuildContext context) {
return SingleChildScrollView(
physics: ScrollPhysics(),
child: ListView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: songsData.songsCount,
itemBuilder: (BuildContext context, int index) {
return CustomCard(
songName: songsData.songsList[index].title ??
Center(child: CircularProgressIndicator()),
artistName: songsData.songsList[index].artist ??
Center(child: CircularProgressIndicator()),
);
},
)
);
[![Screenshot of the output][1]][1]}
我调用来获取数据的函数中已经有数据但ListView.Builder
这里没有显示它们是我从本地存储中获取歌曲列表的函数代码
void getSongsData() async {
songsList = await audioQuery.getSongs();
print(songsList.length);
}
打印语句显示列表中有数据>>
I/flutter (24671): 332
解决方案
尝试调用 setState 或使用 FutureBuilder。
推荐阅读
- javascript - 使用 hbs 循环 API
- swift - 我想在 Swift 中创建一个乘法表,但出现以下错误
- javascript - 如何使用 jquery 选中所有复选框?
- loopback - 使用环回从数据库触发器中检索值
- python - Python 的 cmd.Cmd 不区分大小写的命令
- javascript - 在 React 中使用类名、ID 和数据属性时的最佳实践是什么
- php - JSON:从 Github 检索 JSON 文件
- loopback - 如何在 Loopback 4 中从我的模型中获取所有字段
- angular - 从 Angular 5 升级到 Angular 6 后代码覆盖不完整
- c++ - 如何使用 boost 将流放入缓冲区