如何从本机代码禁用Android默认的“ Touchable onPress”声音?

时间:2019-02-08 17:33:01

标签: react-native-android expo

我正在与expo本机开发Android应用程序。我正在使用expo的Audio.Sound API,以便在我的应用中播放不同的声音。令我烦恼的是,每当我按下TouchableOpacity组件时,我都会从Android获得默认的onPress声音和声音(仅当我从手机的硬件按钮使声音静音时才会消失)。我想禁用默认声音。有没有办法从本机代码以编程方式做到这一点?

3 个答案:

答案 0 :(得分:1)

我使用TouchableWithoutFeedback遇到了完全相同的问题。点击事件时,可触摸事件始终会播放默认的android按钮噪音。

我找到的解决方案是改为使用View组件的onStartShouldSetResponder道具。基本上,这会将视图变成按钮,等效于“ onPress”道具。

<View onStartShouldSetResponder={() => this.onPress()}/>

答案 1 :(得分:0)

您实际上可以使用touchSoundDisabled={true},它不属于TouchableOpacity文档,但属于Button组件的一部分。但它仍然也适用于可触摸对象

答案 2 :(得分:0)

使用 Pressable 而不是 TouchableOpacity 并添加 android_disableSound={true}

<块引用>

{}}