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

8 回复

能不能提供个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 页面的渲染机制和页面切换动画的配合有关。

主要原因分析:

  1. 渲染层级与动画时序问题nvue 页面采用原生渲染。当执行 uni.navigateTo 时,新页面会以原生动画(如从右向左滑入)的方式呈现。在某些 Android 机型或系统版本上,上一个页面的销毁(或隐藏)动画与新页面的创建动画可能存在细微的时序不同步。导致在新页面动画执行初期,上一个页面的视图内容仍短暂残留。
  2. 页面背景设置:如果旧页面或新页面的背景色设置为透明或未明确设置,可能会使底层内容(即上一个页面)在切换间隙透出。
  3. 页面结构或样式影响:复杂的页面布局或特定的 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
});
回到顶部