Flutter GlobalKey的一些使用

本文介绍了在Flutter中如何利用GlobalKey和Overlay创建一个不依赖于特定context的Toast。通过学习BuildContext和GlobalKey,可以实现跨组件的操作,特别是在使用MaterialApp的navigatorKey时,能获取全局context,方便实现全局功能。文章还提到了使用GlobalUtils管理全局变量,并展示了简化后的Toast实现。
摘要由CSDN通过智能技术生成

这几天想着需要一个Flutter的Toast, 一开始的想法就是自己定义一个简单用用, 也看到有人提供了相关的 fluttertoast组件, 但是因为是学习Flutter, 所以感觉还是自己实现一个比较好, 索性网络上也有不少方法…

这里主要是使用Overlay来进行Toast的实现, 用过RN的teaset 基本对Overlay不陌生, 当然还是需要重新认识一下Flutter下的Overlay

Flutter 89: 图解基本 Overlay 悬浮新手引导
Flutter 使用 Overlay 实现全局弹窗

所以 基本的实现代码就是 创建一个OverlayEntry 条目, 塞到某个 Overlay.of(context) 中去, 然后再用定时器延迟删除即可


class ToastUtils {
   


  static void show(BuildContext context,String msg, {
   int duration}) {
   
    /// 收起键盘
    FocusScope.of(context).requestFocus(FocusNode());

    /// 新建待插入到Overlay的条目entry
    OverlayEntry entry = OverlayEntry(builder: (context) {
   
      return Container(
        color: Colors.yellow,
        alignment: Alignment.center,
        width: DeviceUtils.screenW,
        height: DeviceUtils.screenH,
        child
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值