攻城狮已经疯了
攻城狮已经疯了
  • 发布:2020-07-05 21:09
  • 更新:2021-08-26 20:21
  • 阅读:1831

【报Bug】首页 nvue → nvue 页面,页面会闪烁

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: Alpha

HBuilderX版本号: 2.8.0

手机系统: Android

手机系统版本号: Android 10

手机厂商: 三星

手机机型: A80

页面类型: nvue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

如视频

预期结果:

如视频

实际结果:

如视频

bug描述:

首页用nvue,跳转第二页也用nvue的话,页面内容就会消失,仅在华为P30和三星A80上面出现。
如果nvue是第三张页面,就不会发生这个事情。仅仅出现在第二张页面。
如上传视频。

后面我将那个页面所有内容删除,也会异常:进入页面1s左右后,导航栏内容会消失。
所以排除是内容的原因。

2020-07-05 21:09 负责人:无 分享
已邀请:
l***@dingtalk.com

l***@dingtalk.com

最新研究,该问题已解决
页面根元素(下图1中的class='root'),增加背景颜色,但不能写flex:1,

  • 攻城狮已经疯了 (作者)

    确实添加背景颜色这些组件的闪烁就解决了,但是这种感觉都不相关的bug,“谁又想得到呢…………”

    2020-07-14 17:06

  • 1***@qq.com

    感谢分享,页面加个背景色就解决了闪烁的问题

    2021-02-26 09:21

l***@dingtalk.com

l***@dingtalk.com

荣耀V20,出现同样的问题,无法解决

l***@dingtalk.com

l***@dingtalk.com

在android8.0、9.0系统下没问题,ios下没问题,在android10下会出现上面的问题

jxtian

jxtian

测试了页面没有闪烁,看你视频似乎只有分类栏在闪,能提一个可复现的示例工程吗?

  • l***@dingtalk.com

    对,就是tabs这出现闪烁,在很多页面都会出现,并且在自己的项目里引入hello uni-app的页面,同样会出现

    2020-07-09 11:40

  • 攻城狮已经疯了 (作者)

    不是所有手机都出现的,要用报的这几个机型,试试哇,刚刚好被测试人员抓到。

    2020-07-09 11:58

  • 攻城狮已经疯了 (作者)

    华为P30、三星A80、楼上的荣耀V20

    2020-07-09 11:59

  • 攻城狮已经疯了 (作者)

    三星A80这个更可怕,几乎只要是nvue写的 “swiper+list” 组件(包含阴影),就会显示异常。。。

    2020-07-09 12:00

邓琪昌

邓琪昌 - uni-app / uni-app-x 多平台多版本兼容的轻量、简洁、高效、全面的移动端组件库

老哥,这个问题解决了吗?我也遇到这个问题。

  • 攻城狮已经疯了 (作者)

    官方没有完全解决,我试出解决办法了,必要条件:



    1. 页面整体设置背景颜色background-color

    2. 闪烁的那个容器,如顶部分类栏,同上加上背景颜色

    3. 如果上面还有问题,用这个方法(当然最好一直用,仅仅适合有悬浮层需求情况):悬浮层不要实际占位(要用绝对定位),背后一定一定一定不要和其它容器重合(2者保持间距), 基本大部分情况都是解决的。

    2020-08-17 15:11

magiclock

magiclock

<template>
<div class="background-winback" :class="{'flex-auto-zoom':zoom}">
<div id="page">
<slot></slot>
<div :style="'height:' + bottom + 'px'"></div>
</div>
</div>
</template>

<script>
export default {
data() {
return {
zoom: true,
bottom: 0
}
},
mounted() {
this.$nextTick(() => {
this.getZoomStatus()
})
},
methods:{
getZoomStatus() {
const systemInfo = uni.getSystemInfoSync()
this.bottom = systemInfo.safeAreaInsets.bottom + uni.upx2px(40)
this.$nextTick(() => {
uni.createSelectorQuery().in(this).select("#page").boundingClientRect().exec((data) => {
if(data[0].height > systemInfo.windowHeight) {
this.zoom = false
}
})
})
}
}
}
</script>

<style>

</style>

以上代码做一个组件,即可解决问题,在调试模式下会闪的特别严重,关闭调试模式就可以了

该问题目前已经被锁定, 无法添加新回复