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

