我试图在颤动中做这个动画:
https://material.io/guidelines/motion/choreography.html#choreography-creation
我的问题是我完全不知道该怎么做。
据我所知,颤抖的小部件根本不知道他们的位置,也不知道位置或其他小部件。
而且您无法在构建方法中访问context.size
。
我尝试使用英雄动画来做到这一点。或ScaleTransition。但它绝对不起作用。
答案 0 :(得分:4)
您可以使用showMenu
动态显示指定位置的弹出菜单。考虑使用PopupMenuButton
,这是一个IconButton
,可以在点按时自动显示菜单。图库中有一个example。如果showMenu
没有达到您想要的效果,您可以复制popup_menu.dart中的代码并自定义它以制作您自己的版本。它使用CustomSingleChildLayout
和PopupRoute
。
如果您只想将Material
或Card
置于其他元素之上,则可以对其进行一些提升,并在Positioned
内使用Stack
。您可以使用AnimatedSize
使用Curve
调整元素的大小。这不会自动与Android上的后退按钮互动,因此如果您需要,则可能必须使用addLocalHistoryEntry
或PopupRoute
。
答案 1 :(得分:0)
如果我理解您的意思是正确的-您想显示方形小部件,并且动画最多不适合显示,因为小部件不知道其大小。 在这种情况下,您可以尝试MediaQuery.of(context).size.width-它返回屏幕的宽度,因此您可以使用它来计算小部件的大小