【发布时间】:2020-06-20 17:47:22
【问题描述】:
我正在开发应用程序,我可以在按下按钮时让应用程序播放声音,但我还想实现一个功能,当用户将手指悬停在所有按钮上而不释放(如钢琴)时,每个按钮播放它的声音。我如何在 Flutter 中做到这一点?我尝试了谷歌搜索,但由于问题描述性很强,我未能找到解决方案。
【问题讨论】:
标签: flutter button playsound flutter-onpressed
我正在开发应用程序,我可以在按下按钮时让应用程序播放声音,但我还想实现一个功能,当用户将手指悬停在所有按钮上而不释放(如钢琴)时,每个按钮播放它的声音。我如何在 Flutter 中做到这一点?我尝试了谷歌搜索,但由于问题描述性很强,我未能找到解决方案。
【问题讨论】:
标签: flutter button playsound flutter-onpressed
使用GestureDetector 小部件来检测视图中小部件上的不同手势。您可能需要使用onTapDown 和onTapUp
【讨论】:
使用 GestureDetector 这可能是一个可能的解决方案:
GestureDetector(
onLongPressMoveUpdate: (detail){
print(detail.globalPosition.dx);
},
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
height: 40,
width: 40,
color: Colors.black,
),
SizedBox(width: 6),
Container(
color: Colors.white,
height: 40,
width: 40,
),
],
),
)
OnLongPressMoveUpdate 并获取x 轴上的变化dx,根据您的键的Width 查看您所在的键。165.0
flutter: 165.3333282470703
flutter: 165.66665649414062
flutter: 166.0
..
..
flutter: 205.0
你可以注意到 end 和 start 之间的差异等于我的键(一个容器)的宽度。
希望对您有所帮助!
【讨论】:
带有 onTapDown 和 onTapUp 的 GestureDetector 可以在适当的时间内播放单个键。 onPanUpdate 是您需要在几个键上滑动的内容。所以这三者的组合应该是你所需要的。
【讨论】: