flutter - 如何在屏幕右下角显示信息对话框,如 Youtube
问题描述
我需要在屏幕的右下角显示一个信息对话框;一个例子是,当我在 Youtube 上上传一个新视频时,它会在 Youtube 上显示类似这个对话框的内容, 有一些类似这样的小部件吗?提前致谢
解决方案
您可以创建一个覆盖条目,为其提供正确的位置并将其添加到上下文中。
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();}
推荐阅读
- python - 使用不同的数据框替换数据框中的文本值
- swift - 日期格式(“yyyy-MM-dd HH:mm:ss VV”)返回 nil
- wordpress - 显示前 8 个投资组合
- java - 如何在 json 结构本身中重新排列 json 对象?爪哇
- python - 当数据类型为对象时查找列的平均值
- android - 用 Moshi 序列化密封类
- php - PHP 关联数组 - 如何根据条件匹配值
- laravel-5.5 - 根据 Laravel 5.5 中的复选框检查进行验证调用
- bash - 如何将昨天的日期参数传递给 cron 作业
- c# - 无法找到 ArgumentException 的根本原因