如何在Flutter中进行缩放打开动画?

问题描述 投票:2回答:2

我正试图在颤动中做这个动画:

https://material.io/guidelines/motion/choreography.html#choreography-creation

enter image description here

我的问题是我完全不知道该怎么做。据我所知,颤抖的小部件根本不知道它们的位置,也不知道位置或其他小部件。并且您无法在构建方法中访问context.size

我尝试使用英雄动画来做到这一点。或ScaleTransition。但它肯定不起作用。

animation dart flutter
2个回答
4
投票

您可以使用showMenu在给定位置动态显示弹出菜单。考虑使用PopupMenuButton,它是一个IconButton,在点击时自动显示菜单。画廊里有一个example。如果showMenu不能满足您的需求,您可以复制popup_menu.dart中的代码并自定义它以制作您自己的版本。它使用CustomSingleChildLayoutPopupRoute

如果你只是想在其他元素之上绝对定位MaterialCard,你可以给它一些高度并在Positioned中使用Stack。你可以使用AnimatedSizeCurve调整元素的大小。这不会自动与Android上的后退按钮进行交互,因此如果您需要,可能必须使用addLocalHistoryEntryPopupRoute


0
投票

如果我理解你是正确的 - 你想要显示方形小部件,并且动画最多不适合,因为小部件不知道它的大小。在这种情况下,您可以尝试MediaQuery.of(context).size.width - 它返回屏幕的宽度,因此您可以使用它来计算窗口小部件的大小

© www.soinside.com 2019 - 2024. All rights reserved.