【问题标题】:Flutter app - want to play sound oppressed() without it being pressedFlutter 应用程序 - 想要在不被按下的情况下播放声音 oppressed()
【发布时间】:2020-06-20 17:47:22
【问题描述】:

我正在开发应用程序,我可以在按下按钮时让应用程序播放声音,但我还想实现一个功能,当用户将手指悬停在所有按钮上而不释放(如钢琴)时,每个按钮播放它的声音。我如何在 Flutter 中做到这一点?我尝试了谷歌搜索,但由于问题描述性很强,我未能找到解决方案。

【问题讨论】:

    标签: flutter button playsound flutter-onpressed


    【解决方案1】:

    使用GestureDetector 小部件来检测视图中小部件上的不同手势。您可能需要使用onTapDownonTapUp

    【讨论】:

      【解决方案2】:

      使用 GestureDetector 这可能是一个可能的解决方案:

      • 您应该知道每个键的宽度。
      • 尝试将所有“钢琴小部件”放入行小部件中。
      • 将 Row Widget 放在 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 之间的差异等于我的键(一个容器)的宽度。

      希望对您有所帮助!

      【讨论】:

        【解决方案3】:

        带有 onTapDown 和 onTapUp 的 GestureDetector 可以在适当的时间内播放单个键。 onPanUpdate 是您需要在几个键上滑动的内容。所以这三者的组合应该是你所需要的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多