代码之家  ›  专栏  ›  技术社区  ›  daRula

我如何使一个可触摸的不透明包装相机上的反应本地Android点击?

  •  0
  • daRula  · 技术社区  · 5 年前

    我在React Native TouchableOpacity中呈现相机视图,如何使其可单击?

    相同版本的代码在iOS上运行良好,可触摸的不透明性是可点击的,并产生正确的输出。

    <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>
    

    我希望当我按下触摸不透明度时,输出是一个带有“嘿”的警报,而在Android上我什么也得不到,但在iOS上我得到一个“嘿”

    0 回复  |  直到 5 年前
        1
  •  0
  •   Vinícius Carra    5 年前

    这是因为iOS和Android之间的可触摸不透明度行为不同。一个快速的解决方法就是在Android中用outFeedback替换TouchableOpacity。以下是一种方法:

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

    然后用这个常数来包装你的相机视图。

    PS:确保从react本机模块导入了touchableopacity、touchablewithouteedback和platform。