Ist es möglich, react native modal zu schließen, indem Sie auf Overlay klicken, wenn transparent
die Option true
ist? Die Dokumentation liefert nichts dazu. Ist es möglich?Schließen reagieren natives Modal durch Klicken auf Overlay?
Antwort
Wenn ich richtig verstanden habe, möchten Sie das Modal schließen, wenn der Benutzer außerhalb davon klickt, richtig?
Wenn ja, ich für diese gesucht vor einiger Zeit und die einzige Lösung, die ich erinnere mich war dies ein (das ist derjenige, der Ich habe bisher mit):
render() {
if (!this.state.modalVisible)
return null
return (
<View>
<Modal
animationType="fade"
transparent={true}
visible={this.state.modalVisible}
onRequestClose={() => {this.setModalVisible(false)}}
>
<TouchableOpacity
style={styles.container}
activeOpacity={1}
onPressOut={() => {this.setModalVisible(false)}}
>
<ScrollView
directionalLockEnabled={true}
contentContainerStyle={styles.scrollModal}
>
<TouchableWithoutFeedback>
<View style={styles.modalContainer}>
// Here you put the content of your modal.
</View>
</TouchableWithoutFeedback>
</ScrollView>
</TouchableOpacity>
</Modal>
</View>
)
}
// Then on setModalVisible(), you do everything that you need to do when closing or opening the modal.
setModalVisible(visible) {
this.setState({
modalVisible: visible,
})
}
Erklärung
Dies ist im Grunde eine TouchableOpacity auf dem gesamten Bildschirm zu erhalten, wenn der Benutzer das Modal schließen schließt. Das TouchableWithoutFeedback soll verhindern, dass die TouchableOpacity innerhalb des Modal funktioniert.
Wenn Sie eine bessere Lösung haben, bitte hier teilen.
Wir können sie ausarbeiten durch Zugabe:
<touchableObacity onPress={()=>this.setState({modalVisibilty:false})}>
<View style={{opacity:0, flex:1 }}/>
</touchableOpacity>
unter dem Fenster und eine weitere oben und das Layout-Stil Ihr Bildschirm anzupassen ändern.
Erläuterung:
Sie 2 große versteckte Tasten machen den Benutzer Kontakt zu fangen und den Modal Sichtbarkeitsstatus auf false ändern.
- 1. reagieren modal nicht schließen, wenn das Overlay klicken
- 2. jQuery UI 1.7.1 Modal Close on Overlay Klicken Sie auf
- 3. Natives Debugging auf IPad reagieren
- 4. angularjs $ modal schließen modal
- 5. Exit modal durch Klicken auf Hintergrund Inhalt in React
- 6. Schließen modal durch BROWSER zurück Button
- 7. Boostrap-Modal-Schließen nach LinkButton verhindern Klicken Sie in Modal
- 8. Bild-Overlay können Sie durch klicken
- 9. Modal schließen, wenn man auf Overlay klickt, und nicht das Modal selbst.
- 10. Natives Unerwartetes Token reagieren auf Stat.
- 11. Angular Modal - Schließen/Verwerfen Modal
- 12. Modal ausblenden und Modal durch Hintergrund ausblenden klicken
- 13. Verbergen Sie nicht Modal beim Klicken Links/Rechts in Overlay
- 14. Javascript (Overlay Menu) Schließen Übergang
- 15. Modal schließen mit Übergangseffekten auf die Schaltfläche
- 16. verhindern Schließen Modal auf Formular senden
- 17. Fresko schließen Overlay-Ansicht
- 18. Extjs. Schließen Popup-Fenster durch Klicken nicht im Fenster
- 19. Modal-Overlay auf Klick svg Elemente
- 20. Wie man ein Modal schließt, wenn man auf Overlay klickt
- 21. Bootstrap Modal Overlay Ein weiteres Modal
- 22. Muss ein natives natives android-Modul reagieren, um Berechtigungen anzufordern?
- 23. Schließen modal und
- 24. Klicken Sie auf Leaflet Karte schließt Modal, klicken Sie auf Marker öffnet sich Modal
- 25. Schließen Bootstrap Offcanvas Sidebar durch Klicken außerhalb
- 26. Schließen Sie Modal, wenn klicken Sie außerhalb - mehrere ID s
- 27. Erstellen modal auf Klick reagieren-native Android
- 28. iOS-natives MPVolumeView-Audio-Routenmenü schließen
- 29. Vollbild-Overlay klicken Sie irgendwo, um Konflikte mit Textlinks innerhalb von Overlay zu schließen
- 30. Schließen Dropdown-Menü durch Klicken auf die Schaltfläche selbst
Seltsame Lösung, aber es funktioniert. Danke :) –
Ich löste mein Problem mit dieser Idee, obwohl ich sehe, dass '' 'TouchableOpacity''' nicht' '' onPressOut''' hat, und ich '' 'TouchableOpacity''' mit leer verwenden musste Aktion statt '' 'TouchableWithoutFeedback''' – samthui7
hat auch für mich funktioniert! – Aayushi