Bạn có thể đóng react native modal bằng cách nhấp vào lớp phủ khi tùy chọn transparent
là true
? Tài liệu không cung cấp bất cứ điều gì về nó. Có thể không?Đóng phản ứng phương thức gốc bằng cách nhấp vào lớp phủ?
Trả lời
Nếu tôi hiểu chính xác, bạn muốn đóng phương thức khi người dùng nhấp vào bên ngoài, đúng không?
Nếu có, tôi đã tìm kiếm cho việc này một thời gian trước và giải pháp duy nhất mà tôi nhớ là một trong này (đó là một trong đó Tôi đã sử dụng cho đến nay):
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,
})
}
Giải thích
Điều này về cơ bản là sử dụng TouchableOpacity trong toàn bộ màn hình để có được khi người dùng nhấp để đóng phương thức. TouchableWithoutFeedback là để tránh TouchableOpacity hoạt động bên trong Modal.
Nếu bạn có giải pháp tốt hơn, vui lòng chia sẻ tại đây.
Chúng tôi có thể làm việc nó ra bằng cách thêm:
<touchableObacity onPress={()=>this.setState({modalVisibilty:false})}>
<View style={{opacity:0, flex:1 }}/>
</touchableOpacity>
dưới cửa sổ và một số khác ở trên và thay đổi phong cách bố trí để phù hợp với màn hình của bạn.
Giải thích:
Bạn sẽ tạo 2 nút ẩn lớn để bắt người dùng chạm và thay đổi trạng thái hiển thị phương thức thành sai.
- 1. Phương thức phản hồi gốc không đóng
- 2. Cách đóng một phương thức bằng cách nhấp vào bên ngoài cửa sổ phương thức?
- 3. Phát hiện có nguồn gốc phản ứng nhấp vào WebView
- 4. lớp phủ trong suốt trong Phản ứng Native
- 5. Nhấp vào bên ngoài hộp thoại không có phương thức để đóng
- 6. Đóng phương thức bằng cách nhấp vào nền, nhưng không phải trên nội dung
- 7. Đóng một phương thức khởi động phản ứng bằng phím thoát
- 8. Tôi làm cách nào để che phủ ActivityIndicator trong phản ứng gốc?
- 9. Hình ảnh lớp phủ văn bản có độ mờ đục tối đa Phản ứng gốc
- 10. Jquery đóng trên cấp độ gốc, nhấp vào
- 11. Phản ứng 0.13 phương thức lớp không xác định
- 12. OCMock chuyển tiếp phương thức lớp gốc
- 13. Phản ứng gốc vs tạo phản ứng ứng dụng gốc
- 14. Android - cách thêm phương thức nhấp vào mục vào ArrayAdapter
- 15. Làm cách nào để tạo chế độ xem phương thức tìm kiếm bản địa tách biệt với phản ứng gốc?
- 16. Đặt chiều rộng và chiều cao thành Phương thức phản ứng gốc
- 17. phản ứng: Gọi phương thức của thành phần con từ thành phần gốc
- 18. Phản ứng gốc: Không thể nhấp vào trình đơn gỡ lỗi
- 19. phương thức khởi động đóng sau 4 giây hoặc người dùng nhấp vào
- 20. Cách đóng hộp thoại giao diện người dùng jQuery bằng cách nhấp vào bên ngoài khu vực được bao phủ bởi hộp?
- 21. Phản ứng: phương thức với nhiều liên kết gây nên
- 22. Cách thực hiện một phương pháp bằng cách nhấp vào thông báo
- 23. Công cụ jQuery: Cách đóng một lớp phủ?
- 24. Làm thế nào để đóng modal bằng cách nhấp vào nền (Twitter Bootstrap)
- 25. Vượt qua đối tượng dẫn xuất vào phương thức muốn siêu lớp bằng cách sử dụng phản chiếu java?
- 26. Gọi phương thức Generic bằng cách phản ánh trong java
- 27. Hoạt ảnh CSS3: hộp lớp phủ nhấp nháy
- 28. Trình xử lý AndroidView có phản hồi gốc được nhấp vào Url trước khi tải
- 29. Gọi phương thức bằng cách nhấp vào một nút trong UIWebView
- 30. Tạo chế độ xem lớp phủ nhấp qua
Giải pháp lạ, nhưng nó hoạt động. Cảm ơn bạn :) –
Tôi đã giải quyết được vấn đề của mình với ý tưởng này, mặc dù tôi thấy rằng '' 'TouchableOpacity''' không có' '' onPressOut''', và tôi đã phải sử dụng '' 'TouchableOpacity''' với rỗng hành động thay vì '' 'TouchableWithoutFeedback''' – samthui7
làm việc cho tôi quá! – Aayushi