美文网首页
Flutter 学习笔记 16 - Hero 动画

Flutter 学习笔记 16 - Hero 动画

作者: 三流之路 | 来源:发表于2020-09-14 19:24 被阅读0次

类似 Android 的转场动画

将两个页面都要显示的 Widget 用 Hero 这个 Widget 包裹一层。

Hero(
  tag: 'imageHero',
  child: Image.network(
    'https://raw.githubusercontent.com/flutter/website/master/src/_includes/code/layout/lakes/images/lake.jpg',
  ),
);

在两个页面 tag 必须一样,child 是要做动画的内容。

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://raw.githubusercontent.com/flutter/website/master/src/_includes/code/layout/lakes/images/lake.jpg',
          ),
        ),
        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://raw.githubusercontent.com/flutter/website/master/src/_includes/code/layout/lakes/images/lake.jpg',
            ),
          ),
        ),
        onTap: () {
          Navigator.pop(context);
        },
      ),
    );
  }
}

第一个页面中图片在上边,到了第二个页面,图片到了中间。

修改第二个页面的图片大小

child: Hero(
  tag: 'imageHero',
  child: Container(
    height: 100,
    margin: const EdgeInsets.symmetric(horizontal: 10.0),
    child: Image.network(
      'https://raw.githubusercontent.com/flutter/website/master/src/_includes/code/layout/lakes/images/lake.jpg',
    ),
  )
),
2019_01_05_18_22_01.gif

相关文章

  • Flutter 学习笔记 16 - Hero 动画

    类似 Android 的转场动画。 将两个页面都要显示的 Widget 用 Hero 这个 Widget 包裹一层...

  • Flutter学习笔记33-交织动画 Hero动画

    交织动画 有些时候我们可能会需要一些复杂的动画,这些动画可能由一个动画序列或重叠的动画组成,要实现这种效果,使用交...

  • flutter九宫格看图

    flutter九宫格图片 利用GridView实现布局,用Hero动画进行展示

  • Flutter动画 4 - Hero动画

    概述 花瓣App的转场动画,这么多年还是没变,还是图片转场动画. 网上有很多人实现过相关效果,先前骚栋18年在做i...

  • Flutter-Hero动画

    详细介绍 你会学到什么: Hero指的是可以在路由(页面)之间“飞行”的widget。 使用Flutter的Her...

  • flutter之Hero动画

    Hero指的是可以在路由(页面)之间“飞行”的widget。使用Flutter的Hero widget创建hero...

  • Flutter Hero动画案例

    Hero 指的是可以在路由(页面)之间“飞行”的 widget,简单来说 Hero 动画就是在路由切换时,有一个共...

  • Flutter 动画篇——Hero

    Hero 动画使用方法 我们先来看一下效果rt: Hero动画实现了元素共享功能,简单来说: Hero动画就是在路...

  • Flutter Hero/FadeTransition动画

    图片列表 --> 图片详情的 Hero动画 图片列表页 图片详情页

  • Flutter(三十七)Hero动画

    特点 页面A有个圆形头像,页面B也有个圆形头像,头像图片是同一个。从A跳转到B时,一般都是硬性跳转,两个头像之间没...

网友评论

      本文标题:Flutter 学习笔记 16 - Hero 动画

      本文链接:https://www.haomeiwen.com/subject/ruzljqtx.html