Я создал 2 вида, которые отображают перекрытия друг с другом. Верх и низ
Когда фон нижнего вида не настроен. Он правильно отреагировал на событие в прессе. Допустим, когда я нажимаю на зону перекрытия, это показывает, что нижняя была нажата
Однако, когда я настроил вид снизу backgroundColor. Когда я нажал на зону перекрытия, на Android, он отреагировал, когда я нажал на вид сверху, что я считаю неправильным. (iOS он правильно ответил, что нажата нижняя часть)
Шаги для воспроизведения
Предоставьте подробный список шагов, которые воспроизводят проблему. Вот пример компонента
const OverlapseTouchExample = ({backgroundColor}) => {
const [pressedBox, setPressefBox] = React.useState('')
return (
<View>
<Text>{pressedBox} pressed</Text>
<TouchableOpacity style={[styles.box, {backgroundColor: 'blue'}]} onPress={() => setPressefBox('top')} />
<View style={backgroundColor ? { backgroundColor: 'orange' } : null}>
<View style={{marginTop: -75}}>
<TouchableOpacity style={[styles.boxBottom, backgroundColor ? { backgroundColor: 'green '} : null]} onPress={() => setPressefBox('bottom')} />
</View>
</View>
</View>
);
}
const styles = StyleSheet.create({
box: {
width: 150,
height: 150,
borderWidth: 1,
},
boxBottom: {
width: 120,
height: 200,
borderWidth: 1,
}
})
Проблема обнаружена, когда для backgroundColor установлено значение true <OverlapseTouchExample backgroundColor={true} />
Вы можете увидеть его в Snack https://snack.expo.io/@gie3d / 9b6c32 ( Android)