第四百六十七回

news2025/1/18 3:51:48

文章目录

  • 1. 知识回顾
  • 2. 使用方法
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"OverlayEntry组件简介"相关的内容,本章回中将介绍OverlayEntry组件的用法.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 知识回顾

我们在上一章回中介绍了OverlayEntry组件提供的属性和方法并且介绍了如何使用该组件实现一个模糊层,本章回中将在此基础上介绍如何通过OverlayEntry来实现
首次功能引导。本章回的内容可以看作是对OverlayEntry组件的综合应用。

2. 使用方法

下面是使用OverlayEntry实现首次功能引导的方法,请大家参考:

  • 创建OverlayEntry组件,并且给它的builder属性赋值;
  • 通过OverlayState的insert方法显示Overlay;
  • 功能解释完成后通过OverlayEntry组件的remove方法移除Overlay;
  • 把OverlayEntry组件和页面中的某个组件关联起来,用来解释该组件在页面中的功能;

3. 示例代码

ElevatedButton(
  onPressed: () => _showOverlay(context),
  child: const Text("Show Overlay"),
)


///显示一个全屏的Overlay
void _showOverlay(BuildContext context) {
  double screenWidth = MediaQuery.sizeOf(context).width;
  double screenHeight = MediaQuery.sizeOf(context).height;

  _overlayEntry1 = OverlayEntry(builder: (context) {
    ///Overlay上显示的内容
    return Positioned(
        top: 0,
        left: 0,
        child: Container(
          color: Colors.lightBlueAccent,
          width: screenWidth,
          height: screenHeight,
          child:const Text("This is a Overlay Entry"),
        ),
    );
  },
    ///控制透明度
  opaque: true,
  );

  final OverlayState overlayState = Overlay.of(context);
  overlayState.insert(_overlayEntry1!);

  ///5秒后移除Overlay
  Future.delayed(const Duration(seconds: 5,),() {
    if(_overlayEntry1 != null) {
      _overlayEntry1!.remove();
      _overlayEntry1 = null;
    }
  });
}

上面的示例代码中通过OverlayEntry创建了一个模糊层,模糊层中的只显示了一行文字,用来解释某种功能。我们把显示模糊层的功能绑定到了按钮上,点击按钮时就
可以显示模糊层,这相当于是对按钮这个组件进行功能解释。模糊层显示5秒后将在页面中自动消失,这个是通过OverlayEntry组件的remove方法实现的。我们在这里
就不演示程序的运行结果了,建议大家自己动手去实践。此外,该示例只能对页面中的单个组件进行功能上的解释,不能连续解释多个组件的功能。

4. 内容总结

我们在本章回主要介绍了如何使用OverlayEntry组件来解释页面中其它组件的功能,或者说实现功能引导。简单来讲可以概括为三点:创建模糊层,显示模糊层和移除
模糊层。下面是我们对本章回的内容做一个全面的总结:

  • 使用OverlayEntry组件可以创建一个模糊层;
  • 需要把OverlayEntry组件和页面中的某个组件绑定在一起,这样就可以解释组件的功能和用法;
  • 对页面中某个组件的功能解释完成后,需要移除OverlayEntry;
    看官们,与"OverlayEntry组件的用法"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1608463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【简单介绍下K-means聚类算法】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

探索AI大模型:理论、技术与应用

引言 近年来,随着深度学习技术的迅猛发展,AI大模型已经成为人工智能领域的重要研究方向和热点话题。AI大模型,指的是拥有巨大参数规模和强大学习能力的神经网络模型,如BERT、GPT等,这些模型在自然语言处理、计算机视觉…

腾讯一面:你了解js的沙箱环境吗?

去年的面试了,最近复盘了一下,发现菜的一批,有些问题一下子就答出来了,现在答的话,那时候还在瞎鸡儿答我也不知道答的什么。。。。 在 JavaScript 中,沙箱(sandbox)是一个安全机制&…

目标检测——大规模鱼类数据集

一、重要性及意义 生物多样性研究:鱼类是水生生态系统中的重要组成部分,其种类多样性对于维持生态平衡至关重要。通过对鱼类进行准确的分割和分类,可以更好地了解不同鱼类的生态习性、分布情况以及与其他生物的相互作用,进而为保护…

单片机基础知识 07

一. 键盘检测 键盘分为编码键盘和非编码键盘。 编码键盘 :键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或者键值,如计算机键盘。 非编码键盘:靠软件编程来识别。 在单片机组成的各种系统中,用的较多的…

Echarts-知识图谱

Echarts-知识图谱 demo地址 打开CodePen 效果 思路 1. 生成根节点 2. 根据子节点距离与根节点的角度关系,生成子节点坐标,进而生成子节点 3. 从子节点上按角度生成对应的子节点 4. 递归将根节点与每一层级子节点连线核心代码 定义节点配置 functio…

将 Notepad++ 添加到右键菜单

目录 方式一:添加注册表(手动) 方式二:添加注册表(一键添加) 有时安装了notepad后,在txt文件上右键,在弹出的菜单栏中没有【通过 Notepad 打开】,如下: 这…

5. Django 探究CBV视图

5. 探究CBV视图 Web开发是一项无聊而且单调的工作, 特别是在视图功能编写方面更为显著. 为了减少这种痛苦, Django植入了视图类这一功能, 该功能封装了视图开发常用的代码, 无须编写大量代码即可快速完成数据视图的开发, 这种以类的形式实现响应与请求处理称为CBV(Class Base…

OSPF综合大实验

1、R4为ISP,其上只配置IP地址;R4与其他所直连设备间均使用公有IP; 2、R3-R5、R6、R7为MGRE环境,R3为中心站点; 3、整个OSPF环境IP基于172.16.0.0/16划分;除了R12有两个环回,其他路由器均有一个环…

Reka Core, Flash, and Edge: A Series of Powerful Multimodal Language Models

Reka Core, Flash, and Edge: A Series of Powerful Multimodal Language Models 相关链接:arxiv 关键字:Multimodal Language Models、Reka Core、Reka Flash、Reka Edge、State-of-the-Art 摘要 我们介绍了 Reka Core、Flash 和 Edge,这是…

VOJ islands打炉石传说 题解 二进制枚举

islands打炉石传说 代码 #include <bits/stdc.h> using namespace std; typedef long long ll; struct node {int cost, d, w; }; int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int n; // n张牌cin >> n;vector<node> v(n);for (int i 0; …

【深度学习实战(9)】三种保存和加载模型的方式

一、state_dict方式&#xff08;推荐&#xff09; torch.save(model.state_dict(), PATH)model YourModel() model.load_state_dict(torch.load(PATH)) model.eval()记住一定要使用model.eval()来固定dropout和归一化层&#xff0c;否则每次推理会生成不同的结果。 二、整个…

校园小情书微信小程序源码/社区小程序前后端开源/校园表白墙交友小程序

校园小情书前端代码&#xff0c;好玩的表白墙、树洞、校园论坛&#xff0c;可独立部署&#xff0c;也可以使用我部署的后台服务&#xff0c;毕业设计的好项目。 搭建教程&#xff1a; 一、注册管理后台 1、登录小情书站点进行注册&#xff1a;https://你的域名 2、注册成功…

Mathtype用法记录

常用写法 公式编号 给公式插入编号的方法 手动修改公式编号为指定值 例如编号(8.3.1)修改为(8.3.7)&#xff0c;即章、节号不变&#xff0c;公式序号改为7。 可修改编号的域代码&#xff0c;比如(8.3.1)的域代码为&#xff1a; { { MACROBUTTON MTPlaceRef \* MERGEFORMAT…

Redis 缓存预热、预热数据选取策略、缓存保温、性能边界

缓存预热 热点数据预热&#xff1a;根据业务分析或统计数据&#xff0c;确定热点数据&#xff08;经常被访问的数据&#xff09;&#xff0c;并将其提前加载到Redis缓存中。可以根据访问频率、访问量或其他业务指标来确定热点数据。定时预热&#xff1a;可以设置定时任务&…

Python兼职:只需要一台电脑宅在家,轻松实现月入过万!

Python兼职副业 Python是一种简单易学、高效强大的编程语言&#xff0c;正变成越来越多人选择的热门技能。不论你是否有编程基础&#xff0c;在学习Python的道路上&#xff0c;坚持每天投入2小时&#xff0c;你将看到巨大的回报。 学习Python不仅可以为你提供更多就业机会&am…

6.GodotCanvasItem、Node2D及自定义节点

CanvasItem节点 CanvasItem节点&#xff0c;CanvasItem -> Node&#xff0c;所以CanvasItem继承了Node的所有功能Canvas是画布的意思&#xff0c;所以CanvasItem代表了就是可以被绘制的节点&#xff0c;可以设置可视化界面和材质的颜色所有的2D节点和GUI节点都继承于CanvasI…

使用docker配置CCM-SLAM

一.Docker环境配置 1.拉取Docker镜像 sudo docker pull ubuntu:18.04拉取的为ununtu18版本镜像&#xff0c;环境十分干净&#xff0c;可以通过以下命令查看容器列表 sudo docker images 如果想删除多余的docker image&#xff0c;可以使用指令 sudo docker rmi -f <id&g…

openplc Linux 使用modbus RTU 从机通讯

1.Linux 环境下&#xff0c;openplc 默认使用的是modbus tcp协议通信。 想要使用串口 modbus rtu 通讯可以通过在runtime中添加SlaveDevices从机设备 2.添加设备&#xff0c;分配地址。 左边添加串口配置&#xff0c;右边是需要通讯的地址&#xff0c;从机地址都是从100开始&am…

了解光纤的最大损耗

在电信和数据传输领域&#xff0c;保持最佳的网络性能和可靠性至关重要。 影响网络完整性的关键因素之一是光纤中的信号丢失。信号损耗&#xff0c;也称为衰减损耗或光纤衰减&#xff0c;测量光缆输入和输出之间的光损耗量。本文将深入探讨光纤中的主要损耗&#xff0c;并指导您…