2

通过 API,我检索对象的数据——包括它的 url。我在一个屏幕上显示带有 url (Image.Network()) 的图像。现在,单击列表上的此图像后,我想移至单个图像视图-如何将图像而不是 url 传递到新视图,以便应用程序不必从 url 下载它再次?

4

2 回答 2

1

您可以像这样将图像传递给其他类

Navigator.push(
          context, MaterialPageRoute(builder: (context) => OtherClass(data: image)));

并在其他类中接收图像

   var data;

   OtherClass({Key key, @required this.data}) : super(key: key);
于 2020-04-08T10:46:34.720 回答
0

我的代码:

onTap: () {
            Navigator.push(context, MaterialPageRoute(builder: (_) {
            return DetailScreen(url: users[index].url);
        }));
    },
[...]
class DetailScreen extends StatelessWidget {
    final String url;

    DetailScreen({Key key, @required this.url})
        : assert(url != null),
            super(key: key);
    @override
    Widget build(BuildContext context) {
        return Scaffold(
            body: GestureDetector(
                child: Center(
                    child: PhotoView(
                        imageProvider: NetworkImage(url),
                    )
                ),
                onTap: () {
                    Navigator.pop(context);
                },
            ),
        );
    }
}
于 2020-04-08T15:09:52.980 回答