跳到主要内容
版本:0.84

模态框

Modal 组件是一种在包裹视图上方展示内容的基本方式。

示例


参考

Props

View Props

继承自 View Props


🗑️ animated

已弃用

请改用 animationType 属性。


animationType

animationType 属性控制模态框的动画方式。

可能的值:

  • slide 从底部滑入
  • fade 淡入显示
  • none 不带动画显示
TypeDefault
enum('none', 'slide', 'fade')none

backdropColor

模态框的 backdropColor(或模态框容器的背景色)。如果未提供且 transparentfalse,默认值为 white。如果 transparenttrue,则忽略。

TypeDefault
colorwhite

hardwareAccelerated
Android

hardwareAccelerated 属性控制是否为底层窗口强制启用硬件加速。

TypeDefault
boolfalse

navigationBarTranslucent 属性决定模态框是否应显示在系统导航栏下方。不过,要使导航栏透明,还需要将 statusBarTranslucent 设为 true

TypeDefault
boolfalse

onDismiss
iOS

onDismiss 属性允许传入一个函数,该函数会在模态框被关闭后调用。

Type
function

onOrientationChange
iOS

当模态框显示时,onOrientationChange 回调会在屏幕方向变化时调用。提供的方向仅为 'portrait' 或 'landscape'。无论当前方向如何,此回调也会在初始渲染时调用。

Type
function

allowSwipeDismissal
iOS

控制在 iOS 上是否可以通过向下滑动关闭模态框。 这需要你实现 onRequestClose 属性来处理关闭。

TypeDefault
boolfalse

ref

挂载时会分配给一个 element node 的 ref 赋值器。


onRequestClose

当用户在 Android 上点击硬件返回按钮或在 Apple TV 上点击菜单按钮时,会调用 onRequestClose 回调。因此由于这是必需属性,请注意只要模态框打开,BackHandler 事件就不会被触发。 在 iOS 上,当使用 presentationStylepageSheetformSheet 的拖拽手势关闭 Modal 时,会调用此回调。启用 allowSwipeDismissal 后,在关闭模态框之后也会调用此回调。

Type
function
必需
Android
TV

function
iOS

onShow

onShow 属性允许传入一个函数,该函数会在模态框显示后调用。

Type
function

presentationStyle
iOS

presentationStyle 属性控制模态框的显示方式(通常用于 iPad 或更大屏幕的 iPhone)。详见 https://developer.apple.com/reference/uikit/uimodalpresentationstyle。

可能的值:

  • fullScreen 完全覆盖屏幕
  • pageSheet 覆盖居中的竖屏宽度视图(仅在较大设备上)
  • formSheet 覆盖居中的窄宽度视图(仅在较大设备上)
  • overFullScreen 完全覆盖屏幕,但允许透明
TypeDefault
enum('fullScreen', 'pageSheet', 'formSheet', 'overFullScreen')transparent={false} 时为 fullScreen
transparent={true} 时为 overFullScreen

statusBarTranslucent
Android

statusBarTranslucent 属性决定模态框是否应显示在系统状态栏下方。

TypeDefault
boolfalse

supportedOrientations
iOS

supportedOrientations 属性允许模态框旋转到所指定的任意方向。在 iOS 上,模态框仍受应用 Info.plist 中 UISupportedInterfaceOrientations 字段的限制。

备注

presentationStylepageSheetformSheet 时,此属性在 iOS 上将被忽略。

TypeDefault
array of enums('portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right')['portrait']

transparent

transparent 属性决定模态框是否会填满整个视图。将其设为 true 时,会在透明背景上渲染模态框。

TypeDefault
boolfalse

visible

visible 属性决定模态框是否可见。

TypeDefault
booltrue