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
相关产品推荐
相关产品推荐

