我如何使TouchableOpacity包装在React Native android上可点击的相机?

时间:2019-04-24 08:24:35

标签: reactjs react-native touchableopacity

我正在反应本机TouchableOpacity内渲染相机视图,如何使其可单击?

相同版本的代码在iOS上运行良好,touchableOpacity可单击并产生正确的输出

<TouchableOpacity style={{width:'100%', height:300}} onPress={() =>alert("hey")}>
    <Camera 
        style={{ height: 300, width: '100%', display: this.state.camera }}  
        type={this.state.type} 
        autoFocus={'on'} 
        ratio={'4:3'}   
        focusDepth={0} 
        ref={(ref) => { this.camera = ref }}>
    </Camera>
</TouchableOpacity>

我希望在我按TouchableOpacity时,输出为“嘿”的警报,但我在android上什么也没有得到,但在iOs上得到“嘿”

1 个答案:

答案 0 :(得分:1)

这是因为TouchableOpacity行为在iO和Android之间有所不同。一个快速的解决方法是将Android中的TouchableOpacity替换为TouchableWithoutFeedback。这是一种实现方法:

const Touchable = Platform.select({ ios: TouchableOpacity, android: TouchableWithoutFeedback });

然后只需使用此常量来包装您的Camera视图。

PS:确保从react-native模块导入了TouchableOpacity,TouchableWithoutFeedback和Platform。