uniapp|原生控件层级过高无法覆盖的解决方案

uni-app中,原生组件如map、video存在层级过高的问题,导致前端组件无法覆盖。为解决此问题,uni-app提供了cover-view和cover-image组件,以及App端的plus.nativeObj.view和subNVue方案。微信小程序已支持video和map的同层渲染,但App端的原生导航栏、tabbar等仍无法被覆盖,需使用特定方案。此外,Android系统主题字体会影响原生组件的渲染效果。

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

一、原生组件说明

小程序和App的vue页面,主体是webview渲染的。为了提升性能,小程序和App的vue页面下部分ui元素,比如导航栏、tabbar、video、map使用了原生控件。这种方式被称为混合渲染。

虽然提升了性能,但原生组件带来了其他问题:

  • 前端组件无法覆盖原生控件的层级问题
  • 原生组件不能嵌入特殊前端组件(如scroll-view)
  • 原生控件ui无法灵活自定义
  • 原生控件在Android上,字体会渲染为rom的主题字体,而webview如果不经过单独改造不会使用rom主题字体

H5、App的nvue页面,不存在混合渲染的情况,它们或者全部是前端渲染、或者全部是原生渲染,不涉及层级问题。

uni-app 中原生组件清单如下:

  • map

  • video

  • camera(仅微信小程序、百度小程序支持)

  • canvas(仅在微信小程序、百度小程序表现为原生组件)

  • input(仅在微信小程序、支付宝小程序、字节跳动小程序、QQ小程序中且input置焦时表现为原生组件,其中支付宝小程序的input仅为text

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嚣张农民

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

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

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

打赏作者

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

抵扣说明:

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

余额充值