【发布时间】:2021-05-27 15:39:53
【问题描述】:
我是 Flutter 的新手,我来自 Android 开发,我想做一些与 bringToFront() 方法等效的事情,将 Widget 放在“视图层次结构”之上,在其他之上。
我在同一页面上有 5 个Widgets 并排显示,当我触摸其中一个时,我只想将其全屏显示在其他的上方。
到目前为止,我正在使用Stack 小部件,但顺序由Stack 中的Widgets 位置固定,我尝试使用在每个小部件的onPressed() 方法中更新的动态List<Widget> .这是非常滞后的,不是我想要的。
当在 Flutter 中触摸任何 Widget 时,这是否可以实现一个非常简单的 bringToFront() ?
编辑:
为了更好地说明我的结构:
据我所知Navigator,它会转到一个新页面,动画可能不流畅。
我在手机的每个角度都有 4 个Container + 一个在中间居中,缩放大小为手机宽度的 30%。
当我点击其中一个时,我想将其从 0.3 缩放到 1 以获得流畅的动画效果,尤其是 使其高于所有其他,因为它已被选中。
更新:
按照@yellowgray 的建议,HeroWidget 解决了我的简单点击手势问题。
但我还需要在我的手指后缩放小部件(GestureDetector)。而且在这种情况下,小部件在成长时仍然在其他人之下......
问题实际上是关于当你的手指在屏幕上触摸它时,使一个小部件高于其他小部件,无论之后执行哪个手势。
【问题讨论】:
-
你能分享一个你的小部件大小的例子吗?因为如果他们占据了整个屏幕,也许你可以直接使用
Navigator。如果没有,那么,我会看看你的意思,并会提供一个正确的代码。另外,请分享您使用的代码。 -
我编辑问题来回答你的评论会更好。
-
也许您正在寻找Hero Widget
-
是的,Hero WIdget 非常适合您。
-
我查看了文档,它似乎真的很合适。我会更多地了解它和 Flutter 中的动画,感谢您引导我朝着正确的方向前进。
标签: flutter dart flutter-layout flutter-widget