TouchableOpacity не активируется, когда над MapView с backgroundColor - PullRequest
1 голос
/ 04 июня 2019

У меня проблема с TouchableOpacity и response-native-maps.

У меня есть View с MapView и View с абсолютной позицией TouchableOpacity внутри, как в коде ниже:

<View style={{ flex: 1, flexDirection: 'column-reverse' }}>
  <MapView style={{ flex: 1 }} />
  <View style={{ height: 55 }}>
    <TouchableOpacity style={{ position: 'absolute', top: 100 }}>
      <Text>Button</Text>
    </TouchableOpacity>
  </View>
</View>

Когда я в этом случае нажимаю на TouchableOpacity, он работает как задумано, но мне нужно, чтобы у моего внутреннего представления был белый цвет фона, например:

<View style={{ flex: 1, flexDirection: 'column-reverse' }}>
  <MapView style={{ flex: 1 }} />
  <View style={{ height: 55, backgroundColor: '#ffffff' }}>
    <TouchableOpacity style={{ position: 'absolute', top: 100 }}>
      <Text>Button</Text>
    </TouchableOpacity>
  </View>
</View>

Но как только я помещаю тег backgroundColor в стиль, TouchableOpacity вообще перестает работать, и все щелчки над MapView фактически отображаются как щелчки на самой карте.

Кто-нибудь знает, как это решить? Мне действительно нужно иметь фон в представлении, поэтому удалить его невозможно.

1 Ответ

0 голосов
/ 05 июня 2019

Попробуйте разместить вид внутри TouchableOpacity.

<View style={{ flex: 1, flexDirection: 'column-reverse' }}>
  <MapView style={{ flex: 1 }} />
  <TouchableOpacity style={{ position: 'absolute', top: 100 }}>
      <View style={{ height: 55, backgroundColor: '#ffffff' }}>
          <Text>Button</Text>
      </View>
  </TouchableOpacity>
</View>
...