Почему представление не может иметь backgroundcolor при использовании в TouchableHighlight?

#react-native #ecmascript-6

#react-native #ecmascript-6

Вопрос:

Я создаю пользовательский компонент и хочу использовать TouchableHighlight с вложенным в него представлением. TouchableHighlight имеет underlaycolor, но когда я назначаю backgroundcolor представлению, underlaycolor из TouchableHighlight больше не работает.

Если я установлю фоновый цвет в представлении на белый, он не будет работать:

 <TouchableHighlight 
    style={{flex:1}} 
    underlayColor='rgba(0, 0, 0, 1)'
    onPress={this._changeHeight}>
      <View style={{flex:1, backgroundColor:'white'}}>
          <Text>Thats a test</Text>
      </View>      
</TouchableHighlight>
  

Но если я сделаю это так, без фонового цвета в представлении, это сработает:

 <TouchableHighlight 
    style={{flex:1}} 
    underlayColor='rgba(0, 0, 0, 1)'
    onPress={this._changeHeight}>
      <View style={{flex:1}}>
          <Text>Thats a test</Text>
      </View>      
</TouchableHighlight>
  

Я ожидал, что underlaycolor все еще работает, даже если представление имеет backgroundcolor. Представление является дочерним, и я думал, что touchable является родительским. Почему это так?

Ответ №1:

Добавьте цвет фона также в формате rgba

 backgroundColor:'rgba(255, 255, 255, 0)'
  

Комментарии:

1. Вы имеете в виду, что я должен добавить это в стиль touchable? Я пробовал это более 2 часов, но это не сработало.

2. Я говорил о добавлении его в view