flutter - Flutter Dart将字符串从另一个列表转换为列表

标签 flutter dart

从一个api中,我获得了带有封面艺术ID的专辑列表,然后将其列表添加到一个函数中,以从api中获取封面艺术的URL。我的问题是我试图将URL变成列表,但出现错误:“类型字符串不是列表的子类型”。如果我不尝试将其转换为列表,则可以使用URL,但我无法访问各个URL,因此可以将其显示在网格列表中。当我尝试对其进行索引时,它返回的是单个字母而不是单个URL。

class _RecentlyAddedAlbumsState extends State<RecentlyAddedAlbums> {
  Future<List<Album>> albums;
  List<String> coverARTLIST;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      /* backgroundColor: Colors.black, */
      body: Container(
        child: FutureBuilder(
            future: fetchRecentlyAddedAlbums(),
            builder: (context, AsyncSnapshot<List<Album>> data) {
              switch (data.connectionState) {
                case ConnectionState.none:
                  return Text(
                    "none",
                    style: TextStyle(color: Colors.black),
                  );
                case ConnectionState.waiting:
                  return Center(
                      child: CircularProgressIndicator(
                    valueColor: AlwaysStoppedAnimation<Color>(Colors.black),
                  ));
                case ConnectionState.active:
                  return Text('');
                case ConnectionState.done:
                  if (data.hasData) {
                    List<Album> albums = data.data;
                    return ListView.builder(
                      itemCount: albums.length,
                      itemBuilder: (context, index) {
                        return FutureBuilder(
                            future: recentAlbumArt(albums[index].coverArt),
                            builder: (context, AsyncSnapshot cover) {
                              switch (cover.connectionState) {
                                case ConnectionState.none:
                                  return Text(
                                    "none",
                                    style: TextStyle(color: Colors.black),
                                  );
                                case ConnectionState.waiting:
                                  return Center(
                                      child: CircularProgressIndicator(
                                    valueColor: AlwaysStoppedAnimation<Color>(
                                        Colors.black),
                                  ));
                                case ConnectionState.active:
                                  return Text('');
                                case ConnectionState.done:
                                  if (cover.hasData) {
                                    List<String> coverARTLIST = cover.data;
                                    print(coverARTLIST);
                                    return GridView.count(
                                      scrollDirection: Axis.vertical,
                                      crossAxisCount: 2,
                                      shrinkWrap: true,
                                      padding: const EdgeInsets.all(5),
                                      crossAxisSpacing: 10,
                                      children: <Widget>[Text("TEST")],
                                    );
                                  }
                              }
                            });
                      },
                    );
                  }
              }
            }),
      ),
    );
  }
}
封面功能:
Future recentAlbumArt(String coverArtID) async {
  try {
    var salt = randomToken(6);
    var token = makeToken("$password", "$salt");
    var uRL =
        "$server/rest/getCoverArt/?u=$username&t=$token&s=$salt&v=$tapeOutVerison&c=$client$format&id=$coverArtID";
    return uRL.toString();
  } catch (e) {
    print(e);
  }
}

最佳答案

List<String> coverARTLIST = cover.data;这行是您出错​​的原因。您正在尝试将字符串分配给字符串列表。
试试这个

List<String> coverARTLIST=[];
coverARTLIST.add(cover.data);
print(coverARTLIST[0]);

关于flutter - Flutter Dart将字符串从另一个列表转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62743630/

相关文章:

dart - Dart 中的 Web 组件

flutter - 底板被键盘覆盖

flutter - Flutter-文本字段中的初始值和用户输入使用不同的颜色

带有前台服务的音频播放器,适用于 iOS+ Android

dart - M3 中删除了 Strings.join - 什么是新语法?

flutter - 如何同时循环两个列表 - Flutter

user-interface - Flutter:如何移动文本字段字符计数器?

flutter - 使用flutter_inappwebview加载网页时,CircularProgressIndicator在iOS中不起作用

android-studio - Flutter_Blue 从写入中读取响应

flutter - 展开新的ExpansionTile时折叠ExpansionTile