在线教育做网站好还是app好,交友软件网站建设,2015年做哪些网站致富,自己怎么建个网站flutter开发实战-hero动画简单实现
使用Flutter的Hero widget创建hero动画。 将hero从一个路由飞到另一个路由。 将hero 的形状从圆形转换为矩形,同时将其从一个路由飞到另一个路由的过程中进行动画处理。
Flutter Hero动画 Hero 指的是可以在路由(页面)之间“飞行”的 widge…flutter开发实战-hero动画简单实现
使用Flutter的Hero widget创建hero动画。 将hero从一个路由飞到另一个路由。 将hero 的形状从圆形转换为矩形,同时将其从一个路由飞到另一个路由的过程中进行动画处理。
Flutter Hero动画 Hero 指的是可以在路由(页面)之间“飞行”的 widget,简单来说 Hero 动画就是在路由切换时,有一个共享的widget 可以在新旧路由间切换。 一、实现hero动画
实现当前页面飞行到另一个页面页面通过Navigator跳转到另一个路由。hero动画需要一个tagHero控件的一个标签用来判定唯一性。
class HeroDemoPage extends StatefulWidget { const HeroDemoPage({super.key});
override State createState() _HeroDemoPageState(); }
class _HeroDemoPageState extends State { override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(“hero page”), ), body: GestureDetector( onTap: (){ Navigator.push( context, MaterialPageRoute(builder: (context) HeroSecondPage()), ); }, child: Center( child: Hero( tag: “xx”, child: Container( height: 200, width: 300, child: Image.network(“https://d-ssl.dtstatic.com/uploads/blog/202204/13/20220413091711_29352.thumb.1000_0.jpg_webp”), ) ) ), ) ); } }
飞入另一个路由的界面
class HeroSecondPage extends StatefulWidget { const HeroSecondPage({super.key});
override State createState() _HeroSecondPageState(); }
class _HeroSecondPageState extends State { override Widget build(BuildContext context) { // TODO: implement build return Scaffold( appBar: AppBar( title: Text(“hero预览”), ), body: GestureDetector( onTap: (){ Navigator.pop(context); }, child: Column( children: [ Hero( tag: “xx”, child: Image.network(“https://d-ssl.dtstatic.com/uploads/blog/202204/13/20220413091711_29352.thumb.1000_0.jpg_webp”), ), const Text(“预览图片”, style: TextStyle(decoration:TextDecoration.none, fontSize: 20)), ], ) ) ); } }
二、小结
flutter开发实战-hero动画简单实现
学习记录每天不停进步。