2

我正在从这个参考Flutter Image Gallery构建一个 Flutter Gallery 应用程序

一切正常,但我在里面遇到错误Future Builder

这是我收到的错误警告

The name 'Uint8List' isn't a type so it can't be used as a type argument.
Try correcting the name to an existing type, or defining a type named 'Uint8List'.

这是我得到的运行时错误

Error: 'Uint8List' isn't a type.
    return FutureBuilder<Uint8List>(
                         ^^^^^^^^^

Uint8List对我来说是全新的概念,不知道该怎么做。

这是返回 Future Builder 的小部件

  @override
  Widget build(BuildContext context) {
    // We're using a FutureBuilder since thumbData is a future
    return FutureBuilder<Uint8List>(
      future: asset.thumbData,
      builder: (_, snapshot) {
        final bytes = snapshot.data;
        // If we have no data, display a spinner
        if (bytes == null) return CircularProgressIndicator();
        // If there's data, display it as an image
        return InkWell(
          onTap: () {
            // TODO: navigate to Image/Video screen
          },
          child: Stack(
            children: [
              // Wrap the image in a Positioned.fill to fill the space
              Positioned.fill(
                child: Image.memory(bytes, fit: BoxFit.cover),
              ),
              // Display a Play icon if the asset is a video
              if (asset.type == AssetType.video)
                Center(
                  child: Container(
                    color: Colors.blue,
                    child: Icon(
                      Icons.play_arrow,
                      color: Colors.white,
                    ),
                  ),
                ),
            ],
          ),
        );
      },
    );
  }

我在谷歌上搜索过,但没有得到任何满意的答案。提前致谢。

4

2 回答 2

1

试试这个解决方案:

FutureBuilder<Uint8List>

FutureBuilder<dynamic>

或者

FutureBuilder<List<int>>
于 2021-03-06T09:05:26.493 回答
1

只需省略类型,编译器就足够聪明,可以从您提供的类型中推断出:Future<>

FutureBuilder(
    future: asset.thumbData,
于 2021-03-06T09:11:15.637 回答