如何解决如何调用execute onPressed仅满足一个条件
onPressed 时需要调用 play(),但只有在录制完成后才需要显示播放按钮。
Expanded(
child: GestureDetector(
child: IconButton(
icon: Icon(Icons.play_arrow),color: Colors.white,iconSize: 50,onPressed: (){
play();
}),
需要先显示isComplete && recordFilePath != null
,然后显示播放按钮,该怎么做?
解决方法
您可以使用三元运算符在不满足条件的情况下显示SizedBox()
来实现此目的。
isComplete && recordFilePath != null ? Expanded(
child: GestureDetector(
child: IconButton(
icon: Icon(Icons.play_arrow),color: Colors.white,iconSize: 50,onPressed: () => play(),),) : SizedBox(),
,
您可以使用三元运算符检查条件是否满足:
如果满足条件(即为true),请显示播放按钮。 如果不符合条件(例如,false),请显示一个空的小部件(不占用空间)。
我以您的代码为例添加了一个演示:
(isComplete && recordFilePath != null)
// show the play button if the condition is met
? Expanded(
child: GestureDetector(
child: IconButton(
icon: Icon(Icons.play_arrow),onPressed: () {
play();
}),)
// show a shrinked sized box if the condition isn't met
: SizedBox.shrink(),
,
您可以使用三元运算符
return isComplete && recordFilePath != null
? Expanded(
child: GestureDetector(
child: IconButton(
icon: Icon(Icons.play_arrow),onPressed: () {
play();
},)
: SizedBox();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。