首页 > 解决方案 > 如何在屏幕右下角显示信息对话框,如 Youtube

问题描述

我需要在屏幕的右下角显示一个信息对话框;一个例子是,当我在 Youtube 上上传一个新视频时,它会在 Youtube 上显示类似这个对话框的内容, 有一些类似这样的小部件吗?提前致谢

标签: flutter

解决方案


您可以创建一个覆盖条目,为其提供正确的位置并将其添加到上下文中。

var overlayEntry = OverlayEntry(
  builder: (BuildContext context) {
    return YourWidget();
);

然后在需要时将其添加到上下文中:

Overlay.of(context)!.insert(overlayEntry!);

如果您想要显示的只是一个文本,您也可以使用 Tooltip 小部件。创建一个 SizedBox() 并将其放置在您想要对话框的下方,用 Tooltip 小部件包装它。给工具提示一个全局键,将触发类型设置为手动,并在需要时显示它。

final key = GlobalKey<State<Tooltip>>(); 

Tooltip(
   key: key,
   message: your text
   child: SizedBox(),
   triggerMode: TooltipTriggerMode.manual,)

并显示:

void showDialog(GlobalKey key) {
var tooltip = key.currentState;
tooltip?.ensureTooltipVisible();}

推荐阅读