uni-app Iphone 8 swiper list refresh 回弹bug

uni-app Iphone 8 swiper list refresh 回弹bug

开发环境 版本号 项目创建方式
Windows 10 HBuilderX

示例代码:

<list :id="pageId" class="page" :bounce="true" fixFreezing="true">  
    <refresh :display="refreshing ? 'show' : 'hide'" @refresh="onrefresh">  
        <view class="loadmore">  
            <text class="loadmore_text">refresh......</text>  
        </view>  
    </refresh>  

methods: {  
  onrefresh() {  
                this.refreshing = true  
                setTimeout(() => {  
                    this.refreshing = false  
                }, 2000)  
            },  
}
11 回复

问题复现,已反馈给相关人员排查,已加分,感谢您的反馈!


临时解决方案,在iOS平台,父 list 设置 :bounce=“true”, 子 list 也需要设置 :bounce=“true”

都设置了还是一样的哦

还是会有问题

回复 d***@whaiw.com: 在hx中新建页面,选择模板 nvue 多页签滑动吸顶效果,用这个例子

回复 DCloud_uni-ad_HDX: 例子没问题,但是加了fix-freezing="true"就会有问题

问题是否解决?如未解决请提供一个完整的示例工程方便排查问题

问题已经发现了,直接用这个例子(nvue 多页签滑动吸顶效果),把bounce设置为true,是好的,但是如果加上 fix-freezing=“true” 就会有问题,一下好一下坏,比我自己实际项目效果要好一点,不会出现往上缩的情况,但是会出现还没等待刷新完毕,刷新完毕的动画就已经出来了

uni-app 中使用 swiper 组件时,特别是在 iPhone 8 等设备上,可能会遇到 swiper 列表刷新时出现回弹(bounce)的 bug。这个问题通常是由于 swiper 组件的默认行为与某些设备的滚动行为不兼容导致的。

解决方案

以下是一些可能的解决方案,你可以根据实际情况尝试:

1. 禁用 swiper 的回弹效果

你可以通过设置 swiper 组件的 bounce 属性为 false 来禁用回弹效果。

<swiper :bounce="false">
  <!-- swiper items -->
</swiper>

2. 使用 scroll-view 替代 swiper

如果 swiper 的回弹问题无法解决,你可以考虑使用 scroll-view 组件来实现类似的效果。scroll-view 提供了更灵活的滚动控制,并且可以通过设置 scroll-yscroll-x 来实现垂直或水平滚动。

<scroll-view scroll-y>
  <!-- scroll items -->
</scroll-view>

3. 自定义 swiper 的样式和行为

你可以通过自定义 swiper 的样式和行为来避免回弹问题。例如,可以通过 CSS 设置 overflow: hidden 来防止内容溢出。

.swiper-container {
  overflow: hidden;
}

4. 使用 uni-apponPullDownRefresh 事件

如果你需要在 swiper 中实现下拉刷新功能,可以使用 uni-app 提供的 onPullDownRefresh 事件,而不是依赖 swiper 的默认行为。

onPullDownRefresh() {
  // 处理下拉刷新逻辑
  uni.stopPullDownRefresh(); // 停止下拉刷新
}

5. 检查 swiper 的版本和兼容性

确保你使用的 swiper 版本是最新的,并且与 uni-app 的版本兼容。有时,更新到最新版本可以解决一些已知的 bug。

6. 使用 uni-apppage 组件

如果问题依然存在,你可以尝试将 swiper 放在 page 组件中,并通过 page 组件的 scroll 属性来控制滚动行为。

<page scroll-y>
  <swiper>
    <!-- swiper items -->
  </swiper>
</page>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!