uniapp开发小程序scrollView下拉刷新的状态如何关闭

scrollView官网文档
在这里插入图片描述
官网中并未详细说明如何关闭下拉刷新的状态栏 只是给出了设置设置当前下拉刷新状态的配置:refresher-triggered。
我的理解是这样使用的:默认下拉刷新状态是开启的,即默认值是true,在刷新操作完成后将其设置为false以关闭下拉刷新状态,然并卵…

后来经过研究这个配置的正确使用方式是这样的:1、默认值是false,在scrollview触发下拉事件refresherpulling后 2、将其设置位true 3、在刷新操作完成后 再将其设置为false 。

至此,scrollView的下拉刷新的状态控制就已经完成了。
在这里插入图片描述

但使用时还是要注意:
在这里插入图片描述
在这里插入图片描述

官方明确说明,scrollView的下拉刷新性能不佳,如果有下拉刷新的需求还是建议使用页面级别的下拉刷新"enablePullDownRefresh": true

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UniApp 中,可以使用 `scroll-view` 组件实现下拉刷新的功能。下面是一个简单的示例代码: ```vue <template> <view> <!-- 下拉刷新头部 --> <view class="refresh-header" :style="{ marginTop: `${refreshTop}px` }"> <text v-if="refreshStatus === 'normal'">下拉刷新</text> <text v-else-if="refreshStatus === 'pulling'">释放刷新</text> <text v-else-if="refreshStatus === 'refreshing'">正在刷新...</text> </view> <!-- scroll-view 包裹的内容 --> <scroll-view class="scroll-view" scroll-y @scrolltolower="loadMore" @scroll="scroll" @touchstart="touchStart" @touchend="touchEnd"> <!-- 内容列表 --> <view class="content-list"> <!-- 列表项 --> <view v-for="(item, index) in list" :key="index">{{ item }}</view> </view> <!-- 加载更多 --> <view v-if="showLoadMore" class="load-more"> <text>加载中...</text> </view> </scroll-view> </view> </template> <script> export default { data() { return { refreshTop: -60, // 下拉刷新头部的高度 refreshStatus: 'normal', // 下拉刷新状态 list: [], // 列表数据 showLoadMore: false, // 是否显示加载更多 }; }, methods: { scroll(e) { // 获取 scroll-view 的滚动位置 const scrollTop = e.detail.scrollTop; // 根据滚动位置判断是否触发下拉刷新 if (scrollTop < this.refreshTop && this.refreshStatus !== 'refreshing') { this.refreshStatus = 'pulling'; } else if (scrollTop >= this.refreshTop && this.refreshStatus !== 'refreshing') { this.refreshStatus = 'normal'; } }, touchStart() { // 记录 touchstart 时的滚动位置 this.startScrollTop = this.scrollTop; }, touchEnd() { // 判断是否触发下拉刷新 if (this.startScrollTop < this.refreshTop && this.refreshStatus === 'pulling') { this.refreshStatus = 'refreshing'; // 执行刷新操作,例如请求数据 this.refresh(); } }, refresh() { // 模拟异步请求数据 setTimeout(() => { this.list = [1, 2, 3, 4, 5]; this.refreshStatus = 'normal'; }, 2000); }, loadMore() { // 模拟异步加载更多数据 setTimeout(() => { const start = this.list.length + 1; const end = start + 5; for (let i = start; i <= end; i++) { this.list.push(i); } // 隐藏加载更多的提示 this.showLoadMore = false; }, 2000); }, }, }; </script> <style> .refresh-header { display: flex; justify-content: center; align-items: center; height: 60px; } .scroll-view { flex: 1; } .content-list { padding: 20px; } .load-more { display: flex; justify-content: center; align-items: center; height: 40px; background-color: #f4f4f4; } </style> ``` 以上代码实现了一个简单的下拉刷新和加载更多的功能,当用户下拉超过下拉刷新头部指定的高度时,释放后会触发刷新操作。加载更多则是在滚动到底部时触发并加载更多数据。你可以根据实际需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值