【问题标题】:Bring widget to front in flutter on touch触摸时将小部件放在前面
【发布时间】: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


【解决方案1】:

我在这篇文章中找到了全局答案:Flutter Stack change depth

诀窍是使用GlobalKey() 方法来识别您要放在前面的Widgets。在我的测试中,我正在创建一个新实例。

希望这对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多