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

Flutter中onPressed两种写法差异与audioHandler调用问题解惑

问题解惑:onPressed中audioHandler.play的调用差异
  • 直接写onPressed: audioHandler.play时,你是把play方法本身作为回调函数传给了onPressed。Flutter的onPressed需要一个无参数、无返回值的函数,而audioHandler.play刚好匹配这个要求,所以点击时会自动触发该方法执行。

  • 用onPressed: () => {audioHandler.play}的问题在于,你只是创建了一个匿名函数,但函数体里仅引用了play方法,并未调用它。正确写法应该加上括号执行方法:onPressed: () => audioHandler.play(),或者用大括号包裹语句块的形式:onPressed: () { audioHandler.play(); }。

简单来说,你第二种写法里的audioHandler.play只是告诉程序“存在这个方法”,但没有触发它执行;加上括号play()才是真正调用播放操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:41:59