android点击下拉历史记录,uni-app,社交应用中,聊天页面下拉onPullDownRefresh获取历史消息,数据合并之后,滚动到下拉之前的位置,页面看不见闪动,完美解决...

一般下拉之后,拿到数据合并,会默认展示顶部第一条,模仿其他聊天应用,回到下拉之前位置,如果不做处理,可以看见下拉得到的数据,本方法完美解决

有问题可以留言或者加qq445849201讨论,亲测ios和android都没问题

没有更多消息了

{{item.id}}

{{item.id}}{{item.content}}

export default {

data() {

return {

title: 'Hello',

msgList:[],

listPage:0,

showIndex:-1,

isOver:false

}

},

onLoad() {

let _this = this;

_this.addList();  //产生十条消息

},

methods: {

addList(){

let _this = this;

let type = null;

for(let i = 0; i <10;i++){

if(i % 3 == 1){            //消息列表为图片,增加图片消息,增加页面视觉辨识,如果不做处理,在滚动到下拉之前位置时,尤其在低端机上,是可以看见页面图片闪一下

type = 'img'           //文字消息不是很闪

}else{

type = 'msg'           //消息列表为文字消息 ,view循环渲染中判断

}

let msgObj={               //一条消息对象

id:_this.listPage * 10 +i,

content:'你有一条新的消息,请注意查收',

type:type

}

_this.msgList.unshift(msgObj);  //插入列表

}

if(_this.listPage == 0){            //首次滚动到底部

_this.$nextTick(function() {

uni.pageScrollTo({

scrollTop: 99999,

duration: 0

});

});

return;

}

if(_this.listPage>3){               //模拟消息取完了,拿出来40条消息

_this.isOver = true;             // 标记已无更多消息

_this.endOver();                 // 设置禁用下拉加载

return;

}

//最关键一步,在数据插入列表,渲染之后,没有滚动到下拉之前位置时,采用相对定位,设置同背景色遮罩层盖住消息

//设置为9意思是,每次拿十条数据,遮住前十条,用数组循环下标判断从0开始,初始化为-1

_this.showIndex = 9;

let scrollMsg = _this.msgList[9];  //数据合并之后,获取10条消息的元素

_this.$nextTick(function() {

let view = uni.createSelectorQuery().select('#msg'+scrollMsg.id);

view.boundingClientRect(res => {

console.log('#msg'+scrollMsg.id+'距离顶部'+res.top); //获取10条消息的元素距顶部的距离,这就是需要滚动的距离

uni.pageScrollTo({         //回到下拉之前,多展示一条消息

scrollTop: res.top,

duration: 0

});

_this.showIndex = -1;      //去掉遮罩层

uni.stopPullDownRefresh(); //结束下拉加载

}).exec();

});

},

endOver(){  //设置禁用下拉加载

const pages = getCurrentPages();

const page = pages[pages.length - 1];

const currentWebview = page.$getAppWebview();

currentWebview.setStyle({

pullToRefresh: {

support: false,

style: plus.os.name === 'Android' ? 'circle' : 'default'

}

});

console.log('没有更多数据了,禁用');

},

},

onPullDownRefresh() {  //下拉加载

let _this = this;

console.log('refresh');

_this.listPage ++;

_this.addList();

}

}

.content {

display: flex;

flex-direction: column;

align-items: center;

justify-content: center;

padding: 30rpx;

background-color: #FFFFFF;

}

.logo {

height: 200rpx;

width: 200rpx;

margin: 30rpx 0;

}

.text-area {

display: flex;

justify-content: center;

}

.pull-content{

position: relative;

width: 100%;

display: flex;

align-items: center;

margin: 30rpx 0;

}

.left-msg{

width: 300rpx;

border-radius: 10rpx;

background-color: #9eea6b;

color: #333;

font-size: 30rpx;

padding:20rpx;

}

.msg-right{

justify-content: flex-end;

}

.img-box{

display: flex;

align-items: center;

font-size: 28rpx;

}

.absolute-view{

position: absolute;

top: 0;

left: 0;

z-index: 10;

width: 100%;

height: 100%;

background-color: #FFFFFF;

}

.show-index{

display: none;

}

.msg-over{

font-size: 24rpx;

text-align: center;

color: #999999;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebOS + WebIM

此已文重新编辑.WebOSWebOS 是基于web技术实现的类似于桌面操作系统交互风格的应用程序。实现WebOS的主要技术可以是JavaScript或者是RIA(Flex\SL)。在JS领域内的最强大和最著名的可能要数eyeos了。本文所述的WebOS也是采用JavaScript开发的。图1&#xff1a;此应用主要是用于大…

雨滴桌面rainmeter素材_win10 桌面如何做到清爽好看?这篇教程给你答案

当一个电脑用的时间长了以后&#xff0c;难免就会变得非常杂乱。伟大的领袖曾经说过&#xff0c;要像倒腾自己的发型一样折腾好自己的桌面。道理咱都懂&#xff0c;可是大家动起手来就傻眼了&#xff0c;这啥玩意啊&#xff0c;算了吧&#xff0c;还是不弄了。本着慈悲为怀&…

met40如何升级成鸿蒙系统,再见了,EMUI11!你好,华为鸿蒙!

本文原创&#xff0c;请勿抄袭和搬运&#xff0c;违者必究鸿蒙终于来了华为研发鸿蒙OS已经有四五年的时间&#xff0c;诞生时间比大家想象的还要早&#xff0c;并不是为了替代安卓和专门推出的鸿蒙。因为从一开始华为就确定鸿蒙OS是一款面向万物互联时代的操作系统。从华为面向…

学习委托

简单实例 1 publicclasstest2 {3 publicdeledate voidMenuHandler(stringusername);4 publicvoidMenuHandlershixian(stringusername)5 {6 response.write(username);7 }8 publicvoidshow()9 {10 MenuHandler mhMenuHandlershixian;11 mh("majuan");12 }13 publicsta…

ups容量计算和配置方法_UPS电路设计的空开、电缆及电池如何配置,计算依据是什么...

很多朋友问到关于ups相关的计算&#xff0c;其实关于ups方面的计算还是挺多&#xff0c;ups无论是接空开&#xff0c;还是连接电缆&#xff0c;以及选择电池&#xff0c;都可能需要计算它的电流或功率等&#xff0c;那么今天我们来详细了解下ups的相关计算。一、ups空开及电缆的…

android webdav客户端,WebDAV精灵(WebDAV客户端)

WebDAV精灵 让您的Phone,,Pad 成为WebDav客户端,能够使用从WebDav服务器下载文件和上载文件 .一些常用的WebDAV站点:https://webdav.yandex.com(http://www.yandex.com/)https://dav.box.com/dav(https://www.box.net/)https://webdav.mydrive.ch(https://mydrive.ch)http://my…

【李开复】从优秀到卓越 (二)

引 言2000年8月调回微软总部后&#xff0c;因为工作繁忙&#xff0c;我一直没能抽出时间和中国学生做更深入的交流。2003年&#xff0c;一个偶然的机会&#xff0c;我回到中国做了几次演讲。当时&#xff0c;演讲的主办者希望我多谈一谈激励中国学生的内容&#xff0c;多讲讲计…

多层感知机和神经网络的区别_学习笔记-从神经元到神经网络

人的大脑神经网络的复杂程度有人说&#xff0c;只有银河系可以比拟。总所周知&#xff0c;神经网络就是模仿大脑神经网络用数学知识构造的模型。单个神经元还是比较简单的。神经元一个神经元有树突&#xff0c;轴突&#xff0c;和细胞体等部分。树突接受输入信息&#xff0c;细…

华为鸿蒙os电视测评,高端技术下放毫不吝啬!华为智慧屏SE系列评测:鸿蒙OS让入门大屏也好用...

一、前言&#xff1a;高起点的华为智慧屏 终究走向更多大众用户智慧屏从概念落地为产品之后&#xff0c;一直都是华为旗下终端产品当中一个相当重要的角色&#xff0c;特别是在手机业务受阻的当下&#xff0c;更是成了全场景智慧化战略的核心支撑之一。凭借高品质的影音娱乐、花…

python3线程gil_python3爬虫GIL修改多线程实例讲解

我们打开程序后&#xff0c;会发现电脑的内存和cpu发生了变化。在对于前者上面&#xff0c;自然是希望内容占用小&#xff0c;cpu的利用越高越好。那有没有什么方法可以让我们的cpu达到满状态的运行效果呢&#xff1f;这就得用到我们所学的多线程中的知识了&#xff0c;再正式开…

游戏需求分析

玩家为什么玩游戏 玩家为什么要玩游戏呢&#xff1f;或者说&#xff0c;游戏设计应该遵循什么规则才能被广大用户接受呢&#xff1f;这里引用一部分参考资料&#xff0c;也补充一些个人体会。 1.挑战 挑战在竞技类游戏中体现得淋漓尽致。随着网络游戏的流行&#xff0c;多种游戏…

app调html页面,app界面管理(风格色调).html

&#xfeff;APP界面管理(风格色调)$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resources/re…

python中注释语句和运算_python 运算及注释

#!/usr/bin/evn python# -*- coding: UTF-8 -*-#一&#xff1a;输出 1 2 3 4 5 6 8 9 10a 0while a < 10:if a 7 :passelse:print(a)a a 1print (...end...)#二&#xff1a;输出1-100的总和a0b0while a<100:b a ba a 1print (b)#三&#xff1a;输出1-100的奇数a1…

什么是程序容错性

所谓容错是指在故障存在的情况下计算机系统不失效&#xff0c;仍然能够正常工作的特性。容错即是Fault Tolerance&#xff0c;确切地说是容故障&#xff08;Fault&#xff09;&#xff0c;而并非容错误&#xff08;Error&#xff09;。例如在双机容错系统中&#xff0c;一台机器…

2021河南高考成绩查询郸城一高,郸城一高在河南有多牛 2021年高考成绩

课程介绍课程内容郸城一高在河南有多牛呢&#xff0c;2019年高考成绩怎么样呢&#xff0c;下面小编为大家总结一下&#xff0c;仅供大家参考。郸城一高多少学生考上清华北大在河南&#xff0c;有一所知名的高中&#xff0c;它的知名度仅次于衡水中学&#xff0c;它就是位于周口…

用户关系表 存储_列式存储系列(一)CStore

作者:辛庸&#xff0c;阿里巴巴计算平台事业部 EMR 技术专家。Apache Hadoop&#xff0c;Apache Spark commiter。对 Hadoop、Spark、Hive、Druid 等大数据组件有深入研究。目前从事大数据云化相关工作&#xff0c;专注于计算引擎、存储结构、数据库事务等内容。序本文是列式存…

装修月记第一弹,硬装篇

硬装完成进入配饰阶段&#xff0c;特此记录。 房屋位置&#xff1a; 首先是入户这个地方&#xff0c;由于没有设计生活阳台&#xff08;靠&#xff0c;有入户没生活阳台&#xff0c;有生活阳台没入户&#xff0c;真是很FT&#xff0c;FT的蓝光&#xff09;所以热水器和气表放在…

美国计算机科学专业申请要求,美国计算机科学专业申请条件

美国计算机科学专业申请条件G/T成绩五所学校对于GRE和TOEFL的要求都差不多&#xff0c;GRE的verbal and quantitative的较低分数要求都在1200左右&#xff0c;而TOEFL的较低要求是computer-based test 220左右&#xff0c;paper-based test550左右&#xff0c;而internet-based…

python嵌入c代码_怎样把Python代码嵌入到C程序

匿名用户1级2017-11-03 回答这篇文章主要介绍了将Python代码嵌入C程序进行编写的实例,尽管通常还是Python代码中调用C程序的情况较多...需要的朋友可以参考下把python嵌入的C里面需要做一些步骤安装python程序&#xff0c;这样才能使用python的头文件和库在我们写的源文件中增加…

FileUpload之单个文件上传

拖一个FileUpload控件,设计如图: 查看源&#xff1a; <body> <form id"form1" runat"server"> <div> <asp:FileUpload ID"UploadFile" runat"server" /> <br /> <asp:Bu…