uni-app 打开新页面后还会显示上一个页面的内容和tabbar
uni-app 打开新页面后还会显示上一个页面的内容和tabbar
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | windows10 教育版 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:3.3.5
手机系统:全部
手机厂商:华为
页面类型:nvue
vue版本:vue2
打包方式:云端
项目创建方式:HBuilderX
测试过的手机:
设备:nova 7 5G 型号:JEF-AN00 系统 鸿蒙2.0.0
操作步骤:
- 每次都会出现
预期结果:
- 跳转页面后,不应该还显示上一个页面
实际结果:
- 在android 手机上,点击页面使用uni.navigateTo切换后,还会显示上一个页面的界面,过个几秒才会消失
bug描述:
- 在android 手机上,点击页面使用uni.navigateTo切换后,还会显示上一个页面的界面,过个几秒才会消失
更多关于uni-app 打开新页面后还会显示上一个页面的内容和tabbar的实战教程也可以访问 https://www.itying.com/category-93-b0.html
能不能提供个demo,及demo的视频
更多关于uni-app 打开新页面后还会显示上一个页面的内容和tabbar的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我拍的视频你能看到吗,只要首页是nvue,然后加上tabbar选项卡,页面内容高度要超出要跳转的页面就会出现。
要跳转的页面完全没有盖住主页面,过个2秒或者滑动一下页面才可以消失
在华为鸿蒙手机上,你嫩可以试试
可以吧视频,放到附件中
如果有相应的demo也发一下看一下,你可可以尝试自己写一下最简单的demo复现一下,如果demo没问题那就是代码的问题
找到问题了,css写阴影会导致这样
请提供一下复现问题的测试项目
好的
这是一个在 Android 平台上使用 nvue 页面时,调用 uni.navigateTo 可能遇到的常见渲染问题。核心原因通常与 nvue 页面的渲染机制和页面切换动画的配合有关。
主要原因分析:
- 渲染层级与动画时序问题:
nvue页面采用原生渲染。当执行uni.navigateTo时,新页面会以原生动画(如从右向左滑入)的方式呈现。在某些 Android 机型或系统版本上,上一个页面的销毁(或隐藏)动画与新页面的创建动画可能存在细微的时序不同步。导致在新页面动画执行初期,上一个页面的视图内容仍短暂残留。 - 页面背景设置:如果旧页面或新页面的背景色设置为透明或未明确设置,可能会使底层内容(即上一个页面)在切换间隙透出。
- 页面结构或样式影响:复杂的页面布局或特定的 CSS 样式(如某些定位属性)可能干扰原生渲染引擎对页面切换时的图层管理。
针对性的解决方案(按推荐顺序尝试):
方案一:明确设置页面背景色
确保每个 nvue 页面的根节点或 page 样式具有不透明的背景色。这是最直接有效的方法。
/* 在页面的 style 中或 App.vue 的全局样式中 */
page {
background-color: #FFFFFF; /* 或你的设计背景色 */
}
如果页面根元素是 view,也为其设置背景色。
方案二:使用 uni.redirectTo 替代
如果业务逻辑允许(即不需要返回上一个页面),使用 uni.redirectTo 关闭当前页面并跳转,可以避免页面堆叠和切换动画,从根本上消除此问题。
方案三:调整页面切换动画
尝试在 pages.json 中为相关页面或全局配置更简单的页面切换动画,或禁用动画,观察是否改善。
"globalStyle": {
"animationType": "pop-in", // 尝试 "slide-in-right" 等
"animationDuration": 200 // 适当调整时长
}
或在跳转时使用 API 参数:
uni.navigateTo({
url: 'new-page',
animationType: 'slide-in-right',
animationDuration: 200
});

