0

我有一个电子商务网站的主页,我在单击每个产品(图像)时以图像格式显示每个产品我希望在下一个屏幕中填充该图像,该屏幕是还包含产品的产品信息屏幕(图片)和其他一些相关的东西。我只想构建一次信息页面,然后根据单击的图像(产品)相应地更改产品图像和其他内容。我该如何实现这一点 谢谢,

4

1 回答 1

1

默认情况下,Flutter 通过使用Hero小部件来提供这种支持。找到下面的代码片段。

import 'package:flutter/material.dart';

void main() => runApp(HeroApp());

class HeroApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Transition Demo',
      home: MainScreen(),
    );
  }
}

class MainScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Main Screen'),
      ),
      body: GestureDetector(
        child: Hero(
          tag: 'imageHero',
          child: Image.network(
            'https://picsum.photos/250?image=9',
          ),
        ),
        onTap: () {
          Navigator.push(context, MaterialPageRoute(builder: (_) {
            return DetailScreen();
          }));
        },
      ),
    );
  }
}

class DetailScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: GestureDetector(
        child: Center(
          child: Hero(
            tag: 'imageHero',
            child: Image.network(
              'https://picsum.photos/250?image=9',
            ),
          ),
        ),
        onTap: () {
          Navigator.pop(context);
        },
      ),
    );
  }
}

确保Hero.tag两个页面的属性应保持相同。

请参阅链接以获取更多详细信息

于 2021-03-27T12:23:41.450 回答