如何解决触摸时将小部件置于前端
我对 Flutter 非常陌生,我来自 Android 开发,我想做一些类似于 bringToFront()
方法的事情,将 Widget
放在上面的“视图层次结构”的顶部其他人。
我在同一页面上有 5 个 Widget
并排显示,当我触摸其中一个时,我只想全屏显示在其他页面之上。
到目前为止,我正在使用 Stack
小部件,但顺序由 Widget
中的 Stack
位置固定,我尝试使用更新的动态 List<Widget>
每个小部件的 onPressed()
方法。这非常滞后,而不是我想要的。
在 Flutter 中触摸任何 bringToFront()
时,是否可以实现非常简单的 Widget
?
编辑:
为了更好地说明我的结构:
据我所知,Navigator
会跳转到新页面,动画可能不流畅。
我在手机的每个角度有 4 个 Container
+ 一个在中间居中,缩放尺寸为手机宽度的 30%。
当我点击其中一个时,我想将它从 0.3 缩放到 1 以获得流畅的动画,尤其是 使其高于其他所有,因为它被选中。
更新:
如@yellowgray 所建议的那样,HeroWidget 解决了我的简单点击手势问题。
但我还需要在我的手指(GestureDetector)之后缩放小部件。在这种情况下,小部件在增长时仍然在其他小部件下......
问题实际上是关于当您的手指在屏幕上触摸它时使 Widget 高于其他 Widget,无论之后执行哪个手势。
解决方法
我在这篇文章中找到了全局答案:Flutter Stack change depth
诀窍是使用 GlobalKey()
方法来识别您想要放在前面的 Widgets
。在我的测试中,我正在创建一个新实例。
希望这对其他人有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。