J'ai une vue positionnée absolue qui contient 3 composants TouchableOpacity et les 3 ne répondent pas, ils ne fonctionnent tout simplement pas du tout, ce qui ne va pas ici, aidez-moi :)
Code
<View style={[styles.highNormalLowDocListHeaderStateContainer, {width: this.windowWidth, height: this.headerSmallHeight, position: 'absolute', left: 0, top: floatedHeaderTitleTop, elevation: 2}]}>
<TouchableOpacity onPress={() => this.getDocuments('high')} style={[styles.highNormalLowDocListHeaderStateTextContainer, highSelected.borderStyle]}>
<Text style={[styles.highNormalLowDocListHeaderStateText, highSelected.textStyle]}>HIGH</Text>
</TouchableOpacity>
<TouchableOpacity onPress={() => this.getDocuments('normal')} style={[styles.highNormalLowDocListHeaderStateTextContainer, normalSelected.borderStyle]}>
<Text style={[styles.highNormalLowDocListHeaderStateText, normalSelected.textStyle]}>NORMAL</Text>
</TouchableOpacity>
<TouchableOpacity onPress={() => this.getDocuments('low')} style={[styles.highNormalLowDocListHeaderStateTextContainer, lowSelected.borderStyle]}>
<Text style {[styles.highNormalLowDocListHeaderStateText, lowSelected.textStyle]}>LOW</Text>
</TouchableOpacity>
</View>
Capture d'écran
Regardez votre importation. Si vous importez {TouchableOpacity} à partir de 'react-native-gesture-handler'; ne fonctionne pas. Vous devez l'importer depuis 'react-native'
Même si la barre d'onglets semble visuellement être au-dessus du contenu de la liste, les événements tactiles de la liste peuvent la recevoir avant la barre d'onglets. Ajoutez un zIndex à la barre d'onglets pour lui permettre de recevoir les événements tactiles en premier.
Mec allez simplement ajouter zIndex: 1 à la vue contenant les boutons et le boom que vous avez terminé dans la plupart des cas. Notez également que l'ajout d'élévation ajoute une ombre à Android et parfois l'élévation peut également être un problème s'il est ajouté au parent et non ajouté à l'enfant, le bouton enfant peut ne pas fonctionner. (Cas rare)
par exemple:
buttonContainers:
{
zIndex: 1,
alignSelf: 'flex-end',
position: 'absolute',
top:5,
right: 5,
height: 40,
borderWidth: 1,
justifyContent: 'center',
alignContent: 'center',
width: 80
},
Souvent, lorsque vous effectuez un positionnement absolu, vous devez mettre un zIndex car la vue d'interface utilisateur absolue reportée est parfois rendue derrière une autre vue
Si onPress of TouchableOpacity ne fonctionne pas, dans ce cas, TouchableNativeFeedback fonctionnera
Exemple:
{ Platform.OS === 'ios' ?
<TouchableOpacity onPress={() => this.showPassordText()}>
<Text style={{ color: 'red' }}>SHOW</Text>
</TouchableOpacity>
:
<TouchableNativeFeedback onPress={() => this.showPassordText()}>
<Text style={{ color: 'red' }}>SHOW</Text>
</TouchableNativeFeedback>
}
Votre élément absolu est probablement placé dans un élément relatif. Si vous souhaitez cliquer dessus, vous devez supprimer la règle relative parent.