【React Native】文件翻譯閱讀紀錄 - Components(組件) - Modal
![]() |
| Facebook Open Source React Native |
Modal
Modal 組件是一種在封閉視圖上方顯示內容的簡單方法。
注意:如果您需要更多地控制如何在應用程序的其餘部分上顯示模態,請考慮使用頂級導航器。
import React, {Component} from 'react';
import {Modal, Text, TouchableHighlight, View} from 'react-native';
class ModalExample extends Component {
state = {
modalVisible: false,
};
setModalVisible(visible) {
this.setState({modalVisible: visible});
}
render() {
return (
<View style={{marginTop: 22}}>
<Modal
animationType="slide"
transparent={false}
visible={this.state.modalVisible}
onRequestClose={() => {
alert('Modal has been closed.');
}}>
<View style={{marginTop: 22}}>
<View>
<Text>Hello World!</Text>
<TouchableHighlight
onPress={() => {
this.setModalVisible(!this.state.modalVisible);
}}>
<Text>Hide Modal</Text>
</TouchableHighlight>
</View>
</View>
</Modal>
<TouchableHighlight
onPress={() => {
this.setModalVisible(true);
}}>
<Text>Show Modal</Text>
</TouchableHighlight>
</View>
);
}
}
Props
visiblesupportedOrientationsonRequestCloseonShowtransparentanimationTypehardwareAcceleratedonDismissonOrientationChangepresentationStyleanimated
Reference
Props
visible
可見道具確定您的模態是否可見。
| TYPE | REQUIRED |
|---|---|
| bool | No |
supportedOrientations
supportedOrientations prop允許將模態旋轉到任何指定的方向。在iOS上,模式仍受限於應用程序的Info.plist的UISupportedInterfaceOrientations字段中指定的內容。使用pageSheet或formSheet的presentationStyle時,iOS將忽略此屬性。
| TYPE | REQUIRED | PLATFORM |
|---|---|---|
| array of enum('portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right') | No | iOS |
onRequestClose
當用戶點擊Android上的硬件返回按鈕或Apple TV上的菜單按鈕時,將調用onRequestClose回調。由於這個必需的道具,請注意只要模態打開,就不會發出BackHandler事件。
| TYPE | REQUIRED | PLATFORM |
|---|---|---|
| function | Yes | Android, Platform.isTVOS |
| function | No | (Others) |
onShow
onShow prop允許傳遞一個函數,該函數將在模態顯示後調用。
| TYPE | REQUIRED |
|---|---|
| function | No |
transparent
透明道具確定您的模態是否會填滿整個視圖。將此設置為true將在透明背景上呈現模態。
| TYPE | REQUIRED |
|---|---|
| bool | No |
animationType
animationType prop控制模態動畫的方式。
slide滑動從底部滑入fade淡入淡出視野none沒有動畫就會出現
默認設置為無。
| TYPE | REQUIRED |
|---|---|
| enum('none', 'slide', 'fade') | No |
hardwareAccelerated
hardwareAccelerated prop 控制是否強制基礎窗口的硬件加速。
| TYPE | REQUIRED | PLATFORM |
|---|---|---|
| bool | No | Android |
onDismiss
onDismiss prop允許傳遞一個在模態被解除後將被調用的函數。
| TYPE | REQUIRED | PLATFORM |
|---|---|---|
| function | No | iOS |
onOrientationChange
在顯示模態時方向更改時,將調用onOrientationChange回調。提供的方向僅為“肖像”或“風景”。無論當前方向如何,也會在初始渲染時調用此回調。
| TYPE | REQUIRED | PLATFORM |
|---|---|---|
| function | No | iOS |
presentationStyle
presentationStyle prop控制模式的顯示方式(通常在較大的設備上,如iPad或加大尺寸的iPhone)。有關詳細信息,請參閱 https://developer.apple.com/reference/uikit/uimodalpresentationstyle .
fullScreen完全覆蓋屏幕pageSheet包含居中的縱向寬度視圖(僅適用於較大的設備)formSheet包含居中的窄寬視圖(僅適用於較大的設備)overFullScreen完全覆蓋屏幕,但允許透明度
默認設置為overFullScreen或fullScreen,具體取決於透明屬性。
| TYPE | REQUIRED | PLATFORM |
|---|---|---|
| enum('fullScreen', 'pageSheet', 'formSheet', 'overFullScreen') | No | iOS |

0 意見