关于层级的zIndex/elevation
1、zIndex是rn在0.30开始支持的属性,是可以生效的;
2、shadow和elevation
.shadow(阴影)开头的样式现在可以在iOS上应用,但在安卓中是不生效的.
.而Android上对应的属性是elevationelevation。
设置elevation属性就等价于使用原生的elevation API,因而也有同样的限制(比如最明显的就是需要Android 5.0以上版本)。此外还会影响到层叠视图在空间z轴上的顺序。
结论
对于Android,两个同一层级的定位组件(position:“absolute”)
情况 在z轴的层叠关系
既没有ZIndex属性,又没有elevation 属性 由其摆放位置决定的,放在下面的组件会在上层
两个组件只有zIndex没有elevation属性时 zIndex大的在上层
两个组件有elevation属性 elevation大的在上层
两个组件既有zIndex属性elevation属性 以elevation为准
注:对于IOS,同层级的组件,z轴的层叠关系只与摆放顺序与zIndex有关,与elevation无关
RN中的position属性的默认值是relative。只支持两个值relative | absolute。了解CSS的同学对它应该很熟悉,relative指的是相对定位,配合top, right, bottom, left四个方位属性,加上z-index堆叠顺序来对一个元素进行相对于自己左上角为原点的定位。
absolute即绝对定位,它是相对于父级元素的左上角为原点来定位。
绝对定位的元素不会占据原有的流式空间,后面的元素会“补上来”,
Note: 在android上,react native 5.7弹出动画只在当前弹出位置区域内可以显示在最上层,区域外则在内层,
如果要效果好,在弹出的区域内停留相对久一点.
参考:
https://www.jianshu.com/p/2bafbef78fd9
https://blog.csdn.net/al4fun/article/details/80253364