react-native记录zIndex控制页面层次出现透过去的现象

本文介绍了一个React-Native应用中遇到的手势按住按钮切换场景时的兼容性问题,特别是在华为Mate20手机上的表现。文章回顾了React-Native在不同平台上关于z轴层叠关系的处理方式,并提出了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题

我这边用react-native为了实现手势按住一个按钮之后切换场景,使用了zIndex进行页面层次的控制,在所有的ios手机上与绝大部分安卓手机上都表现正常。实际正常效果如下:
在这里插入图片描述
但是在HUAWEI mate 20手机上出现了第二画没有遮盖住第一画的情况,并且这种情况是少量安卓手机按照特定操作步骤才会复现,如下:
在这里插入图片描述

二、回顾react-native在z轴的层叠关系
平台情况在z轴的层叠关系
安卓既没有zIndex属性,又没有elevation 属性由其摆放位置决定的,放在下面的组件会在上层
两个组件只有zIndex没有elevation属性时zIndex大的在上层
两个组件有elevation属性elevation大的在上层
两个组件既有zIndex属性elevation属性以elevation为准
ios只与摆放顺序与zIndex有关,与elevation无关
三、解决办法

实际上在控制zIndex的时候,最好用elevation辅助控制可以解决这种手机兼容性问题

const container = {
            ...styles.container,
            zIndex: showVoiceListening ? 10 : 1,
            elevation: showVoiceListening ? 10 : 1
        }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流星雨在线

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值