[英]Flutter Hero animations with PageView-like implementation
大家好,我有一个与此非常相似的问题: Flutter PageView 中的 Hero-like transition
我认为不同之处在于这个问题有更多的背景。
我们有一个带有 PageView 的水平滚动站点,我们希望在两个页面之间为图标设置动画。 有点像这样: https://flutter.dev/docs/development/ui/animations/hero-animationsThing 。
问题是,大多数带有 HeroAnimations 的教程都使用
Navigator.of(context).push(MaterialPageRoute<void>(
builder: (BuildContext context) {
return
您是否建议我们只重建页面以使其具有此导航器推送? 我认为这需要实现手势检测器以使其感觉像 PageView 以及自定义转换。
您可以在https://teamcrushing.it上查看我们的草稿
页面视图只是让它变得如此简单,但也许我们需要制作自己的页面视图来获得这个功能。
pub.dev 上有一个名为coast
的package,它为页面视图提供英雄般的动画。
它本质上采用与 Flutter 的 Hero 和 HeroController 相同的方法:检测何时开始转换,在源页面和目标页面的元素树中搜索标记为 animation(英雄、螃蟹)的小部件,根据它们的标签对它们进行配对, 最后在 Overlay 中创建一个条目,其 position 和大小是源页面和目标页面上的插值。
在某些情况下,切换到页面结构可能更实用,但如果你不能实现我们自己的英雄导航 animation。 但是它可能不如英雄 animation 高效,但简而言之,要创建具有最基本功能的 animation,我们需要实现它,您需要 5 个元素:
现在,为了创建跨越 2 个屏幕的 animation,我们需要使用 flutter 中存在的覆盖。 关联
这是所有可用选项中最灵活的,因为您可以访问处于所有状态的小部件。 但是,在使用此方法时必须非常小心,因为如果没有正确实施,它可能会导致速度变慢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.