Flutter 中的 OverlayEntry 和 Stack 小部件有啥区别?

Posted

技术标签:

【中文标题】Flutter 中的 OverlayEntry 和 Stack 小部件有啥区别?【英文标题】:What is the diffrent between OverlayEntry and Stack widget in flutter?Flutter 中的 OverlayEntry 和 Stack 小部件有什么区别? 【发布时间】:2021-03-28 04:33:42 【问题描述】:

我想在应用程序的整个小部件上显示一个浮动通知小部件(在 MaterialApp 小部件的顶部)。 所以我找到了两种可能的方法:

    用 Stack 小部件包装 MaterialApp 小部件 将我的小部件插入为 OverlayEntry (Overlay.of(context).insert(MyNotificationOverlay()))

所以我很困惑选择最佳选项来提高应用程序的性能以满足此要求(将通知显示为整个应用程序的浮动小部件(例如,我想通过此通知显示上传进度))

感谢您的帮助

【问题讨论】:

【参考方案1】:

OverlayEntry 在小部件顶部创建。但用完后你会删除它。如果您可以通过Stack 编写代码,请使用Stack 小部件。

【讨论】:

【参考方案2】:

叠加是一种动态堆栈。每当您想在某个特定时间显示一些小部件(就像它在堆栈中一样)时,我们都会使用覆盖。否则,当我们确定已经有一些东西以堆栈的形式出现时,我们使用堆栈。

【讨论】:

以上是关于Flutter 中的 OverlayEntry 和 Stack 小部件有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

flutter widget

flutter widget

Flutter loading

Flutter获取的OverlayState来自哪里?

Flutter 使用 Overlay 实现全局弹窗

Flutter 和 Openlayers - 包括 Flutter 中的 js 库