我如何在 React Native android 中制作一个包含相机可点击的 TouchableOpacity?
How do i make a TouchableOpacity wraping a camera clickable on React Native android?
我正在 react-native 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 时输出是一个带有 "hey" 的警报,而不是我在 android 上什么也得不到,但我在 iOs 上收到 "hey"
那是因为 iOs 和 Android 之间的 TouchableOpacity 行为不同。一个快速的修复方法是将 Android 中的 TouchableOpacity 替换为 TouchableWithoutFeedback。这是一种方法:
const Touchable = Platform.select({ ios: TouchableOpacity, android: TouchableWithoutFeedback });
然后只需使用此常量来包装您的相机视图。
PS:确保从 react-native 模块中导入了 TouchableOpacity、TouchableWithoutFeedback 和 Platform。
我正在 react-native 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 时输出是一个带有 "hey" 的警报,而不是我在 android 上什么也得不到,但我在 iOs 上收到 "hey"
那是因为 iOs 和 Android 之间的 TouchableOpacity 行为不同。一个快速的修复方法是将 Android 中的 TouchableOpacity 替换为 TouchableWithoutFeedback。这是一种方法:
const Touchable = Platform.select({ ios: TouchableOpacity, android: TouchableWithoutFeedback });
然后只需使用此常量来包装您的相机视图。
PS:确保从 react-native 模块中导入了 TouchableOpacity、TouchableWithoutFeedback 和 Platform。