位置: 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怎么安装)

  • QQ群推广的经验心得(qq群推广app怎么赚钱)

    QQ群推广的经验心得(qq群推广app怎么赚钱)

  • 海尔冰箱温度怎么调示意图(海尔冰箱温度怎么调)(海尔冰箱温度怎么调节视频)

    海尔冰箱温度怎么调示意图(海尔冰箱温度怎么调)(海尔冰箱温度怎么调节视频)

  • 0x00004005无法连接到打印机(0x00004005无法连接到打印机win10)

    0x00004005无法连接到打印机(0x00004005无法连接到打印机win10)

  • 华为手机如何关闭提示音(华为手机如何关闭纯净模式)

    华为手机如何关闭提示音(华为手机如何关闭纯净模式)

  • 光驱读取速度的单位是(光驱读取速度的测试方法)

    光驱读取速度的单位是(光驱读取速度的测试方法)

  • 拉人进群为什么显示撤销二字(拉人进群为什么会频繁)

    拉人进群为什么显示撤销二字(拉人进群为什么会频繁)

  • 微信里面视频号怎么开通(微信里面视频号怎么弄出来)

    微信里面视频号怎么开通(微信里面视频号怎么弄出来)

  • 为什么钉钉点赞老师收不到(为什么钉钉点赞看不到点赞效果)

    为什么钉钉点赞老师收不到(为什么钉钉点赞看不到点赞效果)

  • 500音浪抖音提现比例是多少(音浪提现多少钱)

    500音浪抖音提现比例是多少(音浪提现多少钱)

  • 魅族手机流量自动打开怎么处理(魅族手机流量自动开启)

    魅族手机流量自动打开怎么处理(魅族手机流量自动开启)

  • .wmv是什么格式的文件(视频wmv是什么格式)

    .wmv是什么格式的文件(视频wmv是什么格式)

  • 手机一听语音就黑屏怎么回事(手机一听语音就闪屏)

    手机一听语音就黑屏怎么回事(手机一听语音就闪屏)

  • 三星s8卡槽怎么放卡2(三星s8怎么取卡槽)

    三星s8卡槽怎么放卡2(三星s8怎么取卡槽)

  • 华为nova6解锁方式(华为手机nova6怎么解锁)

    华为nova6解锁方式(华为手机nova6怎么解锁)

  • 三星s20能不能插内存卡(三星s20可以插tf卡吗)

    三星s20能不能插内存卡(三星s20可以插tf卡吗)

  • 华为手机短信无主题咋删除(华为手机短信无提示音怎么回事)

    华为手机短信无主题咋删除(华为手机短信无提示音怎么回事)

  • 怎样将照片内存变小(怎样将照片内存变大)

    怎样将照片内存变小(怎样将照片内存变大)

  • 嘀嗒钱包提现多久到账(嘀嗒钱包提现多少手续费)

    嘀嗒钱包提现多久到账(嘀嗒钱包提现多少手续费)

  • 电脑怎么打开运行程序(电脑怎么打开运行管理器)

    电脑怎么打开运行程序(电脑怎么打开运行管理器)

  • 小米手环3有水雾怎么办(小米手环3有水雾怎么解决)

    小米手环3有水雾怎么办(小米手环3有水雾怎么解决)

  • 微信怎么查看已读(微信怎么查看已删除的好友)

    微信怎么查看已读(微信怎么查看已删除的好友)

  • 夏普电视无线投屏在哪(夏普的电视无线投屏)

    夏普电视无线投屏在哪(夏普的电视无线投屏)

  • 如何把文档转换为PDF格式(如何把文档转换成二维码)

    如何把文档转换为PDF格式(如何把文档转换成二维码)

  • 帝国cms 7如何调用专题信息(帝国cms界面)

    帝国cms 7如何调用专题信息(帝国cms界面)

  • 房产税的税收优惠政策
  • 国税地税合并是成功的还是失败的
  • 税金及附加属于营业成本吗
  • 财产租赁合同印花税计税依据含税吗
  • 小规模纳税人给个人怎么开发票
  • 劳务外包人员算不算从业人员
  • 发票认证当月必须抵扣吗
  • 申请开红字发票,原蓝字发票要退回来吗
  • 商品流通企业成本核算的内容包括
  • 车辆购置税退税流程
  • 预缴工程税的帐务处理如何做?
  • 延迟付款确认是怎么回事
  • 房地产开发成本费用明细表
  • 企业利息收入的税率是多少
  • 集团内关联企业有哪些
  • 如何理解“占应纳税额10%以上”?
  • 研发支出资本化支出在报表哪里
  • 汇算清缴差旅费扣除标准
  • 没有签订合同需要交税吗
  • 个人独资企业股权能出让吗
  • 货物劳务和应税收入区别
  • 生产成本可以结转到其他业务成本吗
  • 商家说补发什么意思
  • 两免三减半条件
  • 代垫费用的进项怎么抵扣
  • 自由职业者如何交五险一金
  • mysql如果不存在就创建表
  • 苹果客服人工24小时
  • php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
  • 生产加工型企业安全隐患排查内容
  • 企业是根据什么来分类的
  • 公证处会计分录
  • 税控减免怎么做账
  • 跨年费用计入未分配利润
  • thinkphp3.0
  • 结存材料实际成本分录
  • 深度测试软件
  • 命令default
  • 员工社保缴纳规定标准
  • 免费赠送的产品报关金额
  • 补缴税款账务处理
  • 年终企业所得税怎么结转
  • 报销加油费怎么做账
  • 信用减值借贷方向增减
  • 土地使用权转让合法吗
  • 银行汇票计入什么会计科目
  • 本月未抵扣完的进项税是否转出
  • 盈余公积提取多了
  • 资本公积金转增股本是利好吿
  • 补提折旧以前年度损益调整
  • 什么是利润表?其作用有哪些?
  • 款已付未收到发票
  • 百望开发票
  • 现金日记账需要日清月结吗
  • 记账凭证先写借方还是贷方
  • 银行账和实际金额对不上
  • 会计收入的定义和分类
  • 房产开发企业以什么为主
  • mysql中关于图书馆实训题
  • mysql多字段排序原理
  • win10系统预览版
  • win8怎么运行
  • win8.1鼠标没反应
  • win8系统升级到win 10
  • mac显示所有窗口的快捷键
  • linux系统中的用户分为哪几类
  • linux中samba服务器的设计方案
  • imgconv.exe进程
  • win10红石版
  • android 坐标系
  • cocos2d开发的知名游戏
  • 批处理编程教程
  • 圆形图表分析怎么做
  • 高通 trinket
  • js接收excel文件流
  • android打包v1v2
  • ukey证书初始密码
  • 国家关于农村土地流转政策
  • 失业金存在多个账户
  • 个人所得税税务审核不通过怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设