跳到主要内容
版本:Next

阴影属性


参考

React Native 中有 3 组阴影 API:

  • boxShadow:一个 View 样式属性,以及一个与 同名网页样式属性 规范兼容的实现。
  • dropShadow:作为 filter View 样式属性的一部分提供的特定滤镜函数。
  • 各种 shadow 属性(shadowColorshadowOffsetshadowOpacityshadowRadius):它们直接映射到平台级 API 暴露的原生对应项。

dropShadowboxShadow 的区别如下:

  • dropShadowfilter 的一部分,而 boxShadow 是一个独立的样式属性。
  • dropShadow 是一个 alpha 蒙版,因此只有具有正 alpha 值的像素才会“投射”阴影。boxShadow 会围绕元素的边框盒投射阴影,无论其内容如何(除非它是内嵌的)。
  • dropShadow 仅适用于 Android,而 boxShadow 可用于 iOS 和 Android。
  • dropShadow 不能像 boxShadow 那样设置为内嵌。
  • dropShadow 没有像 boxShadow 那样的 spreadDistance 参数。

一般来说,boxShadowdropShadow 都比 shadow 属性更强大。不过,shadow 属性映射到原生平台级 API,因此如果你只需要一个简单直接的阴影,这些属性是推荐的。请注意,只有 shadowColor 同时适用于 Android 和 iOS,其他所有 shadow 属性都只适用于 iOS。

属性

boxShadow

文档请参见 View Style Props

dropShadow
Android

文档请参见 View Style Props

shadowColor

设置投影颜色。

此属性仅适用于 Android API 28 及以上版本。若要在较低版本的 Android API 上获得类似功能,请使用 elevation 属性

类型
color

shadowOffset
iOS

设置投影偏移量。

类型
object: {width: number,height: number}

shadowOpacity
iOS

设置投影不透明度(乘以颜色的 alpha 分量)。

类型
number

shadowRadius
iOS

设置投影模糊半径。

类型
number