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

Flutter:隐式动画完成前保留文本旧值的实现方法

实现方案

最简单的做法是单独维护一个存储旧文本的变量,在触发文本切换时先把当前文本存入这个变量,再更新目标文本。这样动画执行期间,AnimatedOpacity的子组件就能始终显示切换前的旧文本,直到淡出动画结束。

修改后的代码示例:

// 添加变量保存旧文本
String _oldText = '';

// 文本切换逻辑
void _switchText() {
  // 先留存当前文本
  _oldText = _text;
  setState(() {
    _text = 'hide text';
  });
}

// 更新AnimatedOpacity组件
AnimatedOpacity(
  duration: Duration(seconds: 1),
  opacity: _text == 'hide text' ? 0 : 1,
  // 淡出阶段显示旧文本,其他情况显示当前文本
  child: Text(_text == 'hide text' ? _oldText : _text),
)

如果需要在动画结束后清理旧文本变量,可以给动画添加状态监听器,在动画完成后重置_oldText,但如果只是满足淡出期间显示旧文本的需求,上面的基础实现就足够简洁有效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:24:54