美文网首页Flutter记录自学flutter点点滴滴
Flutter 学习之旅(三十六) Flutter 动画(三)

Flutter 学习之旅(三十六) Flutter 动画(三)

作者: Tsm_2020 | 来源:发表于2020-09-15 16:14 被阅读0次

    hero动画是指在页面之间穿梭的widget,类似微信朋友圈点击图片放大并展示出来的过程,

    先来个例子

    GestureDetector(
                        child: Hero(
                          tag: 'tsm_tag',
                          child: new Padding(
                            padding: const EdgeInsets.all(10.0),
                            child: Image.asset(
                              'images/bg_baby_handbook_en.png',
                              width: 100,
                            ),
                          ),
                        ),
                        onTap: (){
                          Navigator.push(context, PageRouteBuilder(
                              pageBuilder: (BuildContext context, Animation animation,
                                  Animation secondaryAnimation) {
                                return FadeTransition(
                                  opacity: animation,
                                  child:  HeroForwardPage(),
                                );
                              })
                          );
                        },
                      )
    
    class HeroForwardPage extends StatelessWidget{
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('原图'),
            centerTitle: true,
          ),
          body: Center(
            child: Hero(
              tag: 'tsm_tag',
              child: Image.asset(
                'images/bg_baby_handbook_en.png',
                fit: BoxFit.contain,
                width: double.infinity,
              ),
            ),
          ),
        );
      }
    }
    

    实现Hero动画只需要用Hero组件将要共享的widget包装起来,并提供一个相同的tag即可,中间的过渡帧都是Flutter Framework自动完成的。

    效果图


    GIF 2020-9-15 16-12-58.gif

    我学习flutter的整个过程都记录在里面了
    https://www.jianshu.com/c/36554cb4c804

    最后附上demo 地址

    https://github.com/tsm19911014/tsm_flutter

    相关文章

      网友评论

        本文标题:Flutter 学习之旅(三十六) Flutter 动画(三)

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