You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何实现延时逐字显示单词内容并动态添加Widget

解决方案

1. 拆分单词生成指定格式数组

使用字符串split方法拆分单个字符,遍历判断是否为末位字符,拼接后缀即可,示例代码:

const targetWord = 'money';
// 输出结果为 ['m-', 'o-', 'n-', 'e-', 'y']
const formattedCharList = targetWord.split('').map((char, index) => {
  return index === targetWord.length - 1 ? char : `${char}-`;
});

2. 定时器实现动态追加显示

核心逻辑为维护一个指向字符数组的指针,每2秒指针后移一位,将对应字符拼接至当前展示文本末尾,指针超出数组长度时销毁定时器即可。以下提供两种常见场景的实现:

原生JavaScript实现

<!-- 展示容器 -->
<div id="textContainer"></div>
<script>
const targetWord = 'money';
const formattedCharList = targetWord.split('').map((char, index) => index === targetWord.length - 1 ? char : `${char}-`);
const container = document.getElementById('textContainer');
let currentPointer = 0;

// 首次渲染第一个字符
container.innerText = formattedCharList[currentPointer];
currentPointer++;

const renderTimer = setInterval(() => {
  if (currentPointer >= formattedCharList.length) {
    // 所有字符渲染完成,清除定时器避免内存泄漏
    clearInterval(renderTimer);
    return;
  }
  // 追加字符
  container.innerText += formattedCharList[currentPointer];
  currentPointer++;
}, 2000);
</script>

React实现

import { useState, useEffect } from 'react';

const ProgressiveText = () => {
  const [showText, setShowText] = useState('');
  const targetWord = 'money';
  const formattedCharList = targetWord.split('').map((char, index) => index === targetWord.length - 1 ? char : `${char}-`);

  useEffect(() => {
    let currentPointer = 0;
    setShowText(formattedCharList[currentPointer]);
    currentPointer++;

    const renderTimer = setInterval(() => {
      if (currentPointer >= formattedCharList.length) {
        clearInterval(renderTimer);
        return;
      }
      setShowText(prev => prev + formattedCharList[currentPointer]);
      currentPointer++;
    }, 2000);

    // 组件卸载时清除定时器
    return () => clearInterval(renderTimer);
  }, []);

  return <span>{showText}</span>;
};

export default ProgressiveText;

其他框架的实现逻辑完全一致,仅UI更新的API存在差异。

内容的提问来源于stack exchange,提问作者edi233

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 04:06:01