首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

item高度不同时Recyclerview获取滑动距离方法

前言 最近遇到需求,要计算RecyclerView滑动距离,用提供computeVerticalScrollOffset()方法得到值不是很准确。...是基于item平均高度算得,如果列表中item高度一致可以用此方法。问题来了,我应用场景是各item高度不一,这时就只能另找方法了。...所以考虑重写LinearLayoutManagercomputeVerticalScrollOffset()方法,既然原生方法是按平均高度计算,那重写该计算逻辑,就能达到我们想要效果。...1.统计列表已展示过item高度,在每次布局完成时候,用一个map记录positon位置item对应view高度。...,通过heightMap循环累加0到positonitem高度,再加上第一个可见item不可见部分高度

2.8K10

一种统计ListView滚动距离方案

2.2 统计方案 核心方案:通过第一个可见item变化来统计判断实际滑动距离,离开时通过累加初始时可见item到离开时可见item高度来统计实现 第一次进来时(收到滚动回调)时,记录下此时第一个可见...item高度来判断当前滚动了多少距离,大方案只能统计滚动刚好超过item时滚动距离,但如果滚动未超过一个item时,其滚动距离则不能累加item高度来处理,比如: 实际滚动距离为红色部分,并没有超过一个...item高度,此时应该怎样统计该部分距离呢?...笔者在实践中采用了一种补偿机制方案: 记录下当前可见页面的所有item高度; 每次更新最大滚动距离时,同步记录下已更新到最大滚动距离itemIndex; 最终获取最大滚动距离时,会判断是否有漏掉item...高度,如果有漏掉item,则会记录所有item高度进行一次补偿; //记录下最大滚动距离里记录itemIndex; private List mFistVisibleItem

1.2K20

JS判断滚动条是否停止滚动

分析:由于数据量级别较大,所以当滚动滚动时,如果时时向后台发请求,对服务器和浏览器都造成巨大压力。想到解决方案是,当滚动条停止时,再去发请求计算数据。...那么问题来了,如何判断滚动条是否停止了呢?        解决:搜索了一下,js本身是无法判断滚动条是在滚动状态还是停止状态,只有通过其它方式了。...后来想到思路是当滚动滚动时候,发起一个定期执行方法,并记录一次当前滚动条到顶部距离,这个方法中判断此时滚动条到顶部距离是否和上次记录相等,如果相等,那么说明停止滚动了,不相等,还在滚动。...上次滚动条到顶部距离 interval = null;// 定时器 document.onscroll = function() { if(interval == null)// 未发起时,...1秒前距离相等 if(document.documentElement.scrollTop == topValue) { alert("scroll bar is stopping!")

17.3K00

js获取各种高度总结

在写js时候偶尔需要获取各种高度,比如;浏览器高度,页面高度滚动高度等。抽空整理了我自己常用到,时间仓促,没有考虑到万恶IE浏览器。。。。...获取屏幕高度和宽度(屏幕分辨率): window.screen.height window.screen.width 获取屏幕工作区域高度和宽度(去掉状态栏): window.screen.availHeight...window.screen.availWidth 网页全文高度和宽度: document.body.scrollHeight document.body.scrollWidth 滚动条卷上去高度和向右卷宽度...: document.body.scrollTop document.body.scrollLeft 网页可见区域高度和宽度(不加边线): document.body.clientHeight document.body.clientWidth...网页可见区域高度和宽度(加边线): document.body.offsetHeight document.body.offsetWidth

12.5K20

mini react-window(一) 实现固定高度虚拟滚动

,在用户滚动时,指渲染可是区域内内容即可,dom 少,渲染少在 github 上也有很多针对 react 虚拟滚动库,我们这里对 react-window 使用和实现,进行一下简单学习分享,了解不同虚拟滚动场景下使用方式和...,避免滚动时候有个白屏效果,类似缓存。...实现 FixedSizeList 组件时我们要注意我们没有直接写, react-window 提供了固定高度非固定高等几种虚拟滚动场景,但是对于包裹元素来说基本都是一致,只是具体场景元素处理有不同...,就是我们说滚动距离,scrollTop,默认 0}getRangeToRender = () => { const {scrollOffset} = this.state const {itemCount...图片本小节我们实现了固定高度虚拟列表,代码不是很多,感兴趣小伙伴可以自己动手实现自己虚拟滚动库,下一小节我们继续实现其他场景下滚动列表,如有问题欢迎留言讨论。

1.7K50

nicegui布局细节补充——容器高度滚动

前面的章节我们已经学会了 nicegui 中常用各种布局方式:flex 和 grid 布局。这节我们将详细讲解容器高度以及滚动问题。...实战: 只有左下和右边的卡片中列表内容部分,才会出现滚动条 整个布局刚好铺满整个窗口,就算动态修改浏览器窗口大小也是如此 本节使用 nicegui 版本为 1.4.20 高度溢出处理 创建一个容器,...如果我们追加更多内容,最终内容超过了浏览器窗口高度,此时窗口就会出现滚动条。 很合理吧,总不能说内容超出了可视范围,直接把多余内容干掉吧。...除了设置固定高度值,我们也可以设置一个最大高度: 前面加个 max- 前缀就可以 现在我们总结一个要点, 要让一个容器在内容溢出高度时,出现滚动条,必须具备以下条件: 容器本身高度要被限制,可以是固定高度值...我们很少会说,页面上某个卡片高度具体是多少。最多我们可能会设置一个最小高度之类(其实也不多见) 更多情况是,我们希望整体布局刚好铺满整个屏幕,然后里面的某个区域,内容溢出时,出现滚动条。

18410

JS滑动滚动n种方式

JS滑动滚动n种方式 # 阅读本文,你将: 了解原生JS实现页面滚动多种方式 了解这多种方式可以对应上效果以及推荐应用场景 多个滑动方面的坑以及相应(如果有)解决方案 获得一些有用函数...一个元素 scrollTop 值是这个元素内容顶部(卷起来)到它视口可见内容(顶部)距离度量。当一个元素内容没有产生垂直方向滚动条,那么它 scrollTop 值为0。...该api仅FireFox支持 6.1 基本用法 表示相对当前滚动位置再滚动指定行数距离,行为表现接近于上下键控制滚动 例如window.scrollByLines(-5)表示向上滚动5行 7 window.scrollByPages...该api仅FireFox支持 7.1 基本用法 表示相对当前滚动位置再滚动指定页数距离,行为表现接近于空格键(反向+Shift)控制滚动 例如window.scrollByPages(-1)表示向上滚动...": `${window.screen.height}`, "屏幕分辨率宽": `${window.screen.width}`, "屏幕可用工作区高度": `${window.screen.availHeight

5.9K10
领券