Flutter web 滚动循环 title(Flutter Web端 滚动显示浏览器标签页名)

应用场景:一般用于页面收到新消息通知时,或者正在播放音视频时浏览器标签页会循环显示标签名称,以达到提醒或表示正在进行的效果。

Flutter 代码

  /**
   * 修改html的title {repeat 为true则滚动循环显示title}
   * 使用方法 editWebTitle(title: "这是需要滚动显示的标题",repeat: true); / editWebTitle(title: "这是不滚动的标题");
   */
  Timer? _timer;
  void editWebTitle({
    required String title,
    bool repeat = false,//默认不滚动循环
  }){
    print("update title"+title);
    _timer?.cancel();
    if(repeat){
      print("Dynamically update the title");
      String result = title + "     ";//避免循环时后面的字符直接连接,出现345612的情况
      // 通过**定时器**重复设置title达到类似递归的效果
      // 假设目标为"123456  "进行循环,则第一次效果为"23456  1",第二次效果为"3456  12",如此循环
      // PS: 降低duration貌似并不会提升循环流畅度...
      _timer = Timer.periodic(Duration(milliseconds: 150), (timer) {
        String str = "";
        String first = result.split("").first;
        result.split("").reduce((value, element) {
          return str+=element;
        },);
        result = str + first;//将之前的首个字符拼接到末尾
        // print("result");
        SystemChrome.setApplicationSwitcherDescription(ApplicationSwitcherDescription(
          label: result,//设置web的title即标签页名称
        ));
      });
    }else{
      // 用于停止标签滚动的简单处理,此处也可以使用 _timer?.cancel();
      SystemChrome.setApplicationSwitcherDescription(ApplicationSwitcherDescription(
        label: title,
      ));
    }
  }

有效果更好(更易实现)的方法欢迎留言。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值