按下 IconButton 执行两个操作
Perform two actions on the press of an IconButton
我正在开发一个音乐播放器,在按下下一步按钮时我想执行两个功能,一个是将歌曲添加到队列中,另一个功能用于触发 'addSong' 的插件方法。在按下按钮时,我希望执行两个功能,即“_pageManager.addSong”和'addSongToQueue'。
这是代码
ValueListenableBuilder<bool>(
valueListenable: _pageManager.isLastSongNotifier,
builder: (_, isLast, __) {
return IconButton(
icon: Icon(Icons.skip_next),
onPressed: (isLast)
? _pageManager.addSong
: _pageManager.onNextSongButtonPressed;
);
}),
不要使用三元,而只使用函数体。
onPressed: () {
function1();
function2();
}
你可以像这样在被压制的函数中使用if
onPressed: (){
if(isLast){
_pageManager.addSong
}else{
_pageManager.onNextSongButtonPressed;
}
}
或者如果你只需要检查一个条件就这样使用它
onPressed: () =>
isLast ? _pageManager.addSong
:
_pageManager.onNextSongButtonPressed;
我明白你的逻辑了
我可能会建议创建一个函数
void onAddSong() {
_pageManager.addSong();
// addSongToQueue()
}
然后调用这个
onPressed: (isLast)
? this.onAddSong
: _pageManager.onNextSongButtonPressed;
);
我建议你用那个 isLast @param 来考虑这个小部件的可扩展性,可以吗?
我正在开发一个音乐播放器,在按下下一步按钮时我想执行两个功能,一个是将歌曲添加到队列中,另一个功能用于触发 'addSong' 的插件方法。在按下按钮时,我希望执行两个功能,即“_pageManager.addSong”和'addSongToQueue'。
这是代码
ValueListenableBuilder<bool>(
valueListenable: _pageManager.isLastSongNotifier,
builder: (_, isLast, __) {
return IconButton(
icon: Icon(Icons.skip_next),
onPressed: (isLast)
? _pageManager.addSong
: _pageManager.onNextSongButtonPressed;
);
}),
不要使用三元,而只使用函数体。
onPressed: () {
function1();
function2();
}
你可以像这样在被压制的函数中使用if
onPressed: (){
if(isLast){
_pageManager.addSong
}else{
_pageManager.onNextSongButtonPressed;
}
}
或者如果你只需要检查一个条件就这样使用它
onPressed: () =>
isLast ? _pageManager.addSong
:
_pageManager.onNextSongButtonPressed;
我明白你的逻辑了 我可能会建议创建一个函数
void onAddSong() {
_pageManager.addSong();
// addSongToQueue()
}
然后调用这个
onPressed: (isLast)
? this.onAddSong
: _pageManager.onNextSongButtonPressed;
);
我建议你用那个 isLast @param 来考虑这个小部件的可扩展性,可以吗?