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

Flutter通知始终显示同一随机字符串问题求助

解决通知始终显示同一随机字符串的问题

问题原因

你当前的代码仅在初始化阶段生成了一次randomName和randomYou的随机值,后续点击按钮时并未重新生成新的随机字符串,因此每次通知都会显示同一内容。即便使用setState,若未在点击时重新执行随机生成逻辑,也无法更新值。

修复方案

将随机字符串的生成逻辑移至按钮的onPressed回调内部,确保每次点击时都重新生成新的随机值:

// 把变量声明放在State类成员位置(不要放在build方法内)
String? randomYou;
String? randomName;
Color? randomColor;
final double height = MediaQuery.of(context).size.height;
final double width = MediaQuery.of(context).size.width;
final random = Random();

// 修改按钮点击逻辑
onPressed: () {
  showToast();
  // 每次点击都重新生成随机值
  randomName = names[random.nextInt(names.length)];
  randomYou = random1[random.nextInt(random1.length)];
  NotificationService().showNotification(1, 'Hello', randomName!);
},

如果之前变量是在build方法内声明的,务必调整到State类成员位置,避免因build重复执行导致不必要的重复生成;核心是每次点击时主动触发随机生成逻辑,而非依赖build的执行时机。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 21:20:27