位置: IT常识 - 正文

【uniapp】上拉触底加载更多的两种方式,组件里面和页面里面 scroll-view组件和onReachBottom触底方法,以及部分安卓机型scroll-view很难触发问题,且可以固定表头(uniapp scroll-view 上下滑动)

编辑:rootadmin
【uniapp】上拉触底加载更多的两种方式,组件里面和页面里面 scroll-view组件和onReachBottom触底方法,以及部分安卓机型scroll-view很难触发问题,且可以固定表头

推荐整理分享【uniapp】上拉触底加载更多的两种方式,组件里面和页面里面 scroll-view组件和onReachBottom触底方法,以及部分安卓机型scroll-view很难触发问题,且可以固定表头(uniapp scroll-view 上下滑动),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp的下拉框,uniapp下拉刷新和上拉加载,uniapp scroll-view 上下滑动,uniapp上下页面滑动,uniapp下拉,uniapp上拉加载带动画,uniapp上拉加载带动画,uniapp上拉加载带动画,内容如对您有帮助,希望把文章链接给更多的朋友!

一般的话scroll-view在组件里面使用,而页面里面则使用onReachBottom()这个方法居多

1,onReachBottom 上拉触底后加载更多(未固定表头)

页面结构:

<view class="box"><table border="0"><thead><th>名称</th><th style="width: 50px;">状态</th><th>上传时间</th><th style="width: 60px;">重量(kg)</th><th style="width: 50px;">类型</th></thead><tr v-for="(item,index) in utrData" :key="index" class="trs"><td>{{item.name}}</td><td>{{item.flag}}</td><td>{{item.createDt}}</td><td>{{item.weight}}</td><td>{{item.typeCode}}</td></tr></table><view class="zwsj">{{ moreContent }}</view></view>【uniapp】上拉触底加载更多的两种方式,组件里面和页面里面 scroll-view组件和onReachBottom触底方法,以及部分安卓机型scroll-view很难触发问题,且可以固定表头(uniapp scroll-view 上下滑动)

注意: 这个box的height要比屏幕的高度高5px或者10px,要不然它不会出现滚动条,没有滚动条就不会触发onReachBottom 这个触底方法了 当然,如果你确保你的数据首次查询的高度比屏幕的高度还高,那它自然就出现滚动条了,这个box就直接等于屏幕的高度就行 如果要考虑数据少于10条,且没有撑满屏幕,那这个box还是设置比屏幕高度高一点比较好.

export default {data() {return {utrData: [],//列表数组pageNum: 1, // 页数total: 0,//每页总数flag: true, // 上拉加载开关 防止一次触底查询多次问题,防止数据查完后触底还调接口问题moreContent: '上拉加载更多数据...',}},methods: {//上拉加载更多getMoreList(){this.flag = trueuni.request({...success:res => {if(res.data.status == 200){this.flag = falselet result = res.data.data || []this.utrData = this.utrData.concat(result)if(result.length == 0 && this.pageNum == 1){// 一开始就没有数据this.moreContent = '暂无数据'}else{this.total = result ? result.length : 0if(this.total < 10){// 只有一页数据,不足10条this.moreContent = '数据已加载完,共' + this.utrData.length + '条'this.flag = true}// 有很多页this.pageNum += 1}}else{this.moreContent = '暂无数据'uni.showToast({title:res.data.message,icon:'none'});}} });},},//监听页面触底函数onReachBottom(){if(!this.flag){this.getMoreList()}},}

如果没效果,先测试onReachBottom有没有触发,一般触发了基本上就没什么问题了

2,scroll-view组件上拉加载更多(固定表头)

ui组件: uview2.0 如果你不想固定表头,就不用 -37 就可以了 wx.getSystemInfoSync().windowHeight 获取当前屏幕的高度

<view class="box" :style="{height: boxHeight + 48 + 37 + 'px'}"><view class="toptitle"><u-icon name="list-dot" color="#00c9d5" size="28"></u-icon><text>具体信息</text></view><view class="content"><view class="thead"><text>code</text><text>时间</text><text>重量(kg)</text><text>类型</text><text>状态</text></view><view class="tbody" :style="{height: boxHeight + 'px'}" id="test"><scroll-viewscroll-y="true"lower-threshold="10":style="{height: boxHeight + 'px'}"@scrolltolower="scrolltolower"><view class="tableData" :style="{height: boxHeight + 10 + 'px'}"><view v-for="(item, index) in tableArr" :key="index"><text>{{ item.code }}</text><text>{{ item.create_time }}</text><text>{{ item.weight }}</text><text>{{ item.type }}</text><text>{{ item.location}}</text></view><view style="color: #aaa;"><text>{{loadingContent}}</text></view></view></scroll-view></view></view></view>export default {data() {return {tableArr: [],boxHeight: wx.getSystemInfoSync().windowHeight - 48 - 37,loadingContent: '上拉加载更多数据...',total: 0, // 每页总数pageNum: 1,// 页数flag: true, // 控制上拉翻页testHeight: 0}},methods: {// 页面滚动触发scrolltolower(e) {if(!this.flag){ this.getTable() }},// 查询表格getTable(){let params = {p: this.pageNum}this.$get('xxx', params).then(res =>{this.flag = truelet result = res.lsit || []this.tableArr = this.tableArr.concat(result)if(result.length == 0 && this.pageNum == 1){// 一开始就没数据this.loadingContent = '暂无数据'}else{this.total = result ? result.length : 0if(this.total < 10){this.moreContent = '数据已加载完,共' + this.utrData.length + '条'this.flag = true}this.flag = falsethis.pageNum += 1}})},},}3,scroll-view 部分安卓机型很难触发问题

ios用第二种方法没有问题,部分安卓用的话很难触发上拉加载更多,为什么部分安卓很难触发就不说了,自行百度

解决: @scrolltolower 方法替换为 @scroll @scrolltolower 方法是 scroll-view触底了就会触发,是触scroll-view组件的底部,不是触屏幕的底部 @scroll 方法是只要 scroll-view组件滑动了,就会触发这个方法

methods: {// 页面滚动触发scrolltolower(e) {// 距离底部<100 并且是往上滑的动作if(e.detail.scrollHeight - e.detail.scrollTop - this.testHeight <= 100 && this.flag && e.detail.deltaY < 0){this.flag = falsethis.getTable()}},// 查询表格getTable(){let params = {p: this.pageNum}this.$get('xxx', params).then(res =>{this.flag = truelet result = res.lsit || []if(result.length == 0 && this.pageNum == 1){// 一开始就没数据this.loadingContent = '暂无数据'this.flag = false}else{this.pageNum += 1this.total = result ? result.length : 0if(this.total < 10){this.moreContent = '数据已加载完,共' + this.utrData.length + '条'this.flag = false}this.tableArr = this.tableArr.concat(result)if(this.testHeight==0){let view = uni.createSelectorQuery().in(this).select("#test")view.fields({size: true,scrollOffset: true}, data => {this.testHeight=data.height}).exec();}}})},},

ok,没了,记录一下,哪里写的不对还请指出,谢谢,下期再见! ! !

本文链接地址:https://www.jiuchutong.com/zhishi/296115.html 转载请保留说明!

上一篇:冰川洞穴里流动的河流,冰岛瓦特纳冰原 (© Marco Bottigelli/Getty Images)(冰川洞洞打法)

下一篇:BurpSuite安装和基础使用教程(已破解)(burp怎么安装)

  • 学生优惠资质怎么绑定(学生优惠资质怎么增加次数)

    学生优惠资质怎么绑定(学生优惠资质怎么增加次数)

  • 苹果蓝牙耳机华为手机可以用吗(苹果蓝牙耳机华强北推荐)

    苹果蓝牙耳机华为手机可以用吗(苹果蓝牙耳机华强北推荐)

  • 微光app是干嘛的(微光app干什么的)

    微光app是干嘛的(微光app干什么的)

  • iPhone6s有AirPods弹窗吗(苹果6plus有airpods弹窗)

    iPhone6s有AirPods弹窗吗(苹果6plus有airpods弹窗)

  • 回车键变发送怎么换行(回车键变成发送咋办)

    回车键变发送怎么换行(回车键变成发送咋办)

  • 第一代pro是哪年(pro 1代)

    第一代pro是哪年(pro 1代)

  • 微信图片打包怎么弄(微信图片打包怎么发送给别人)

    微信图片打包怎么弄(微信图片打包怎么发送给别人)

  • 苹果无线充电在哪打开(苹果无线充电在哪里开启)

    苹果无线充电在哪打开(苹果无线充电在哪里开启)

  • 手机半屏幕黑屏,一半正常是什么原因(手机半屏黑屏怎么办)

    手机半屏幕黑屏,一半正常是什么原因(手机半屏黑屏怎么办)

  • 手机上怎么叫代驾(手机怎么叫代价)

    手机上怎么叫代驾(手机怎么叫代价)

  • 苹果iwatch4和5的区别(iwatch4和5哪个好)

    苹果iwatch4和5的区别(iwatch4和5哪个好)

  • 怎么把视频上下拼接到一起(怎么把视频上下剪短)

    怎么把视频上下拼接到一起(怎么把视频上下剪短)

  • 苹果11的手机壳xr能用吗(苹果11的手机壳13能用吗)

    苹果11的手机壳xr能用吗(苹果11的手机壳13能用吗)

  • 微信公众号每天只能发一篇文章吗(微信公众号每天只能群发一次吗)

    微信公众号每天只能发一篇文章吗(微信公众号每天只能群发一次吗)

  • 手机怎么弄横屏流动字(苹果手机怎么弄横屏)

    手机怎么弄横屏流动字(苹果手机怎么弄横屏)

  • xr3dtouch改成什么啦

    xr3dtouch改成什么啦

  • 如何破解抖音青少年密码(如何破解抖音青年模式)

    如何破解抖音青少年密码(如何破解抖音青年模式)

  • qq音乐怎么赠送铭牌(qq音乐怎么赠送三天vip给好友)

    qq音乐怎么赠送铭牌(qq音乐怎么赠送三天vip给好友)

  • 苹果11什么时候发售(苹果11什么时候上市的)

    苹果11什么时候发售(苹果11什么时候上市的)

  • 闲聊里的收款码在哪里(闲聊的收钱码在哪里)

    闲聊里的收款码在哪里(闲聊的收钱码在哪里)

  • ae时间轴怎么调成秒(ae时间轴怎么调成帧)

    ae时间轴怎么调成秒(ae时间轴怎么调成帧)

  • 手机天天收到很多垃圾信息怎么办(手机天天收到很多验证码)

    手机天天收到很多垃圾信息怎么办(手机天天收到很多验证码)

  • psb是什么格式(pspsb是什么格式)

    psb是什么格式(pspsb是什么格式)

  • ipad7是什么型号(ipad7是哪个型号)

    ipad7是什么型号(ipad7是哪个型号)

  • 虾米音乐如何切歌(虾米音乐怎么用耳机切歌)

    虾米音乐如何切歌(虾米音乐怎么用耳机切歌)

  • window系统 安装 nvm 详细步骤(windows 安装)

    window系统 安装 nvm 详细步骤(windows 安装)

  • 一个例子解释python装饰器(一个例子解释唯物辩证法三大规律)

    一个例子解释python装饰器(一个例子解释唯物辩证法三大规律)

  • 初级会计职称能加多少工资
  • 酒类的包装物押金可以单独核算吗
  • 销售货物业务的销项税额怎么计算
  • 出口免税进项税额转出怎么计算
  • 什么是税务学
  • 代扣代缴增值税纳税义务发生时间
  • 建筑企业成本核算工作流程
  • 独立核算的分公司
  • 个体注销了名下的车辆
  • 资产几百亿真的有那么多钱吗?
  • 研发费用资本化支出
  • 企业所得税清算报备表清算结束日
  • 增值税发票可以抵扣多少
  • 有限合伙合伙人要求
  • 应收票据会计分录怎么做
  • 库存现金盘点表是不是原始凭证
  • 总公司给分公司开发票
  • 事业单位收个人部分社保怎么入账
  • 企业零申报教学视频
  • 退租水电费从押金里扣除
  • 每季度财务报表
  • 暂估固定资产原值减少
  • 收据可以入账的范围
  • macbook怎么和ipad
  • 银行定期存款账户
  • 文件类型错误请重新选择
  • edge浏览器设置主页网址
  • 个税是负数直接工资加上吗
  • 医生规培生补贴每年多少钱
  • 已认证未付款可以退款吗
  • PHP:bzcompress()的用法_Bzip2函数
  • 增值税如何形成欠税
  • 浏览器并发请求队列数量怎么设置
  • 会计政策变更对财务分析的影响
  • php bool
  • 波白克岛的小尖塔岩石,英格兰多塞特 (© James Osmond/Alamy)
  • dns域名解析两种方式
  • MS Excel: COUNTIF Function (WS)
  • 购入固定资产的会计处理
  • 费用在发生时确认而不考虑支付费用
  • Windows下Postgresql下载与配置方法
  • 待报解预算收入是什么意思,扣了钱
  • 公司借个人借款协议书范本
  • 已申报营业税未开发票
  • 经营性收入包括成本吗
  • 出口合同的流程
  • 商业印花税的计算公式
  • 汇算清缴要退税1750元,不想退要调平怎么调?
  • 画完图不给钱怎么办
  • 土增清算可以扣除项目
  • 固定资产停产需要计提折旧吗
  • 对公可以转个人账户货款吗
  • 在建工程发生的运费计入什么科目
  • 未开票收入怎么报税
  • 发票作废后对方还能认证吗
  • 成本会计难做吗没做过
  • 产品成本核算有多条原则和要求
  • sql union和join区别
  • centos安装类型选择
  • windows mobile
  • 重装win7系统后屏幕变小了
  • windows8.1正版
  • windows8应用商店用不了
  • win7旗舰版系统激活密钥
  • 向Windows8靠拢 全新的个性化库页面
  • JavaScript中的方法名不区分大小写
  • linux for i in
  • nodejs 异步io底层原理
  • shell替换文件中指定行的指定内容
  • 批处理应用实例
  • Node.js中的事件循环是什么意思
  • content provider
  • js设计模式有什么用
  • js判断div是否存在
  • js中的tostring方法
  • 卷票真伪查询系统国税
  • 河南2020年机构改革
  • 美丽重生李晓晓免费阅读
  • 广东省税务机关规定小额零售需开发票吗
  • 服务类发票 如何入账
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设