晒网
晒网
  • 发布:2025-07-11 23:22
  • 更新:2025-07-15 00:33
  • 阅读:406

【报Bug】升到4.7.5以后listview增加或删除子项时列表抖动

分类:uni-app x

产品分类: uni-app x/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.75

手机系统: Android

手机系统版本号: Android 13

手机厂商: 华为

手机机型: 荣耀100

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

<list-view>
<list-item v-for="(item, key) in (reportlist as reportnodes[])" :key="key" type="1">
<view>这里是第一条巡检报告</view>
<view v-for="(itemchild) in (item['ks']as reportnodeschild[])">这里是巡检报告的指示结果用for循环从数组中读【往数组中添加或删除新的数据时会抖动,整个巡检报告指示和下面的List-item都会抖 之前没有问题】</view>
</list-item>
</list-view>

大概是上面的样式 这样的东西 没有添加任何动画效果【其实想要一个平滑的插入一条数据 下面的挤压往下移动,没有属性设置】,

操作步骤:

直接往Listview中listitem下增加新的view或删除原来的view 用for循环控制

预期结果:

正常显示 不抖动

实际结果:

添加删除时都会抖动

bug描述:

类似评论列表 子列表添加或删除项时所有的列表都会抖动一下(之前没有这个问题升完以后检查项目兼容的时候发现的)

2025-07-11 23:22 负责人:DCloud_Android_ST 分享
已邀请:
晒网

晒网 (作者) - 只晒网不打渔

还发现了一个情况 不知道怎么处理 在嵌套模式下,scroll-view里面包着list-view

<scroll-view ref="refscroll" type="nested" :show-scrollbar="false" :style="{height: bheight - 50 + 'px'}">

<list-view class="bodyclass" ref="commentchildlist" show-scrollbar="false" @scroll="zigundong" bounces="false"  
    :style="{width: bwidth + 'px',maxHeight: bheight + 'px'}" associative-container="nested-scroll-view" scroll-with-animation="true">  

当子列表滑动的超过一家距离后(滚动屏幕上面之外了) 再往list-view里面追加项 会自动把内层的list-view滚动到0 回到顶部了 看了文档scroll-top默认是0 这个怎么让这个不生效呢 就是滚动到屏幕以外后添加数据 不改变子列表的滚动位置 之前也没事 现在出现了

晒网

晒网 (作者) - 只晒网不打渔

特别奇怪 nested-scroll-header 有时候会被隐藏直接显示nested-scroll-body 即:nested-scroll-body里面的内容在屏幕的最上方 坐标0,0 应该是nested-scroll-header在最上面 升之前也没事 建议官方排查一下吧 猜测是scroll-top属性的问题 看升级日志有提到这块的改动
出现抖动的时候是scroll-view内层嵌入的list-view nested-scroll-header隐藏的时候是scroll-view内层嵌的waterflow

晒网

晒网 (作者) - 只晒网不打渔

切换到上个版本以后 所有的问题都消失了

DCloud_Android_ST

DCloud_Android_ST

请提供下复现项目demo

  • 晒网 (作者)

    老板 这是我们公司的项目 公司电脑都装了沙盒 代码拿不出来 就弄个嵌套外层是scroll-view内层是listview 点按钮往listview里面动态加数据(不是追加list-item 是在list-item中的view中追加view显示项)

    nested-scroll-header 隐藏的是 外层scroll-view 内层waterflow 这个很容易复现 header里面放一些内容让nested-scroll-body的内容在中间显示(不在最上面显示就行) 你试一下吧

    2025-07-14 13:09

  • DCloud_Android_ST

    回复 晒网: 是否可以写个简单demo呢 靠描述写demo复现确实太费时间了 希望能理解

    2025-07-14 15:16

  • 晒网 (作者)

    回复 DCloud_Android_ST: 那等有条件了吧 这电脑上写了也弄不出去 比较麻烦

    2025-07-14 17:43

晒网

晒网 (作者) - 只晒网不打渔

看代码吧 @DCloud_Android_ST

要回复问题请先登录注册