解决ListView的smoothScrollToPosition不精确问题

使用RecyclerView滚动到屏幕指定位置 背景:    需求中有一个详情页添加虚浮锚点条,要求滚动到不同过的cell锚点高亮,点击锚点滚动到指定位置。实现:    监听滚动过程使锚点高亮并不难实现,问题在于点击锚点滚动到指定位置;    但是项目结构使用的listview,自然想到了listview.smoothScrollToPositionFromTop(int pos, int offset);因为在顶部有一个titleBar渐变的... 阅读详情

公司要实现垂直方向的跑马灯,让ListView垂直滚动
使用

listView.smoothScrollBy(distance, duration);

或者使用

listView.smoothScrollToPosition(position++);

都不准确,即使distance确实是由item的高度dp换算成px也不行,滚动均会出现偏差的情况,再多几次item就只显示一半了,item view getHeight或getMeasuredHeight也不行。
最后使用

listView.smoothScrollToPositionFromTop(count++, 0, 800);

暂时没发现问题,为了保险起见,最好调用setSelection来纠正位置。

// 先滚动,再调用setSelection纠正位置
listView.smoothScrollToPositionFromTop(count, 0, 800);
                listView.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        listView.setSelection(count++);
                    }
                }, 900);

参考这里

RecyclerView.scrollToPosition滚动无效、跳动问题 在RecyclerView初始化数据的时候,使用RecyclerView.scrollToPosition()滚动到指定位置时,有时会无效:无法滚动,或滚动位置不对。通过上面这种方式,可以平滑滚动,不会生硬的跳转过去,如果还是不想用这种方式,可以继续看下面更好的方式。使用这个方法之后,就不会出现列表先加载出来再发生滚动的现象,而是加载出来就是滚动到指定位置的列表。比如滚动到屏幕顶部、居中等直接使用就不好用,如果需要实现这种效果,需要用其他方案。等监听布局改变的方式,实际上和方法1效果一样,但是呢。 阅读详情

相关推荐

如何浏览与下载全球免费的地图高分辨率(亚米级)的遥感影像?

前言 如果你想使用商业卫星的高分辨遥感影像,一般价格昂贵。我们可以使用地图平台上免费的高分辨率数据。目前数据源很多,比如说google earth、天地图、四维地球、必应地图等等。这些影像统一有一个共同点就是:RGB三波段;Web地图瓦片服务。这意味着我们可以通过瓦片服务下载影像,但下载的影像只有三个波段,分别是 一.引言 二、可使用高分辨率的地图数据源 1.Google Earth影像 2.Esri World Image 3.天地图 4.必...

锐多宝的地理空间 2万+

【Android 一般进阶】ListView滑动到顶部smoothScrollToPosition

ListView一般用来展示数据,当不停的往下翻页,数据会不停的加载,数据也就会越来越多,listview也就越来越长。当用户想回到顶部的时候,难道还需要用户自己往上翻页吗?那也太落后了吧。 一般会做一个按钮,跳转至顶部,有两种方式实现: 1.使用setSelection(0),不过这样的跳转是没有动画的,瞬间到达顶部; 2.使用smoothScrollToPosition(0),这样的跳转

ben0612的专栏 8620

Imputation Methods for scRNA Sequencing Data

越来越多的研究者使用单细胞RNA测序(scRNA-seq)技术来表征单细胞水平的转录图谱。他们用它来研究复杂组织的异质性、转录组动力学和未知生物的多样性。然而,在基因表达模式随机性的scRNA-seq数据中普遍存在许多技术和生物学上的噪音。这些数据通常具有高维、稀疏和大量“dropout”值的特点,并且受批处理效应的影响。scRNA-seq数据中大量的“dropout”值严重掩盖了基因之间的重要关系,阻碍了下游分析。因此,scRNA-seq数据dropout值的估算就显得尤为重要。

qq_34179307的博客 542

recyclerView.smoothScrollToPosition(0)显示不全问题

实现场景:点击置顶按钮,滑动到第一条 解决问题:第一条显示不全问题 1、按钮监听 if (i == R.id.go_top) { shopGoodListRecycler.smoothScrollToPosition(0); isSmoothToTop = true; } 2、recyclerview监听 rec...

xiaomengzi的博客 2595

MCP详解:手把手教你理解和如何使用各种开源MCP服务

MCP 作为一种开放协议,为 AI 模型与外部世界的连接提供了标准化的解决方案。它不仅降低了开发门槛,还极大地扩展了 AI 应用的边界。无论是开发者还是普通用户,都可以通过 MCP 更高效地利用 AI 技术,实现更多智能化的功能。

王哥儿聊AI的博客 6056

Java实战:绿盾加密文件批量解密工具Ldterm的实现与优化

本文详细介绍了基于Java开发的绿盾加密文件批量解密工具Ldterm的实现与优化过程。通过分析绿盾加密机制,结合Java流处理能力,实现了高效的文件解密方案,并分享了多线程处理、内存优化等性能提升技巧,适用于企业级数据迁移与备份场景。

weixin_29314405的博客 492

Android解决ListView滚动smoothScrollToPosition定位存在偏移的解决方法

直接set即可,但是缺少动画过渡。好处就是定位不会再偏移,并且其他功能能正常使用。

a15277163641的博客 512

手把手教你用HiNet实现图像隐藏:可逆神经网络实战指南(附代码)

本文提供了一份基于HiNet框架实现图像隐藏的实战指南。通过详细解析可逆神经网络原理,手把手指导环境搭建、模型构建、损失函数设计及训练流程,并附有完整代码。该方法利用单个可逆网络统一隐藏与恢复过程,结合小波变换提升隐蔽性,为信息隐藏应用提供了高效解决方案。

rgv234567的博客 433

ListView滑动到指定位置smoothScrollToPositionFromTop

开发需求:listView平滑滑动到指定位置,然后弹出一个展开框; 1.为了“平滑滑动”,于是我把写好的setSelection(position)改成smoothScrollToPosition(int position),可是死活找不到smoothScrollToPosition(int position)动画end监听,没有这个监听的话 无法获知何时弹出展开框。 2.如果要知道smooth的...

iblade的博客 6389

IP-guard发布新版本4.87.2241.0

IP-guard发布了新版本4.87.2241.0,用户可通过提供的下载地址获取完整安装包和升级包。下载后,用户需联系厂家申请测试序列号以进行安装和使用。IP-guard是一款专注于企业文件加密、文档加密系统、防泄密软件、数据安全的软件。

IP-Guard专栏 1531

【实战】小红书笔记爬虫终极指南:模拟滑动加载,抓取图文(2026最新版)

小红书作为国内最大的生活方式分享社区,每天产生海量的图文笔记。对于数据分析、市场调研、竞品分析等需求,爬取小红书公开笔记成为一项常见任务。然而,小红书的反爬机制日益升级——接口加密、动态Token、滑动验证、设备指纹……本文将深入剖析小红书Web端和App端的爬取技术,手把手教你用Python实现模拟滑动加载、自动抓取图文笔记的完整爬虫系统。全文包含大量代码、原理分析和排坑经验,适合有一定爬虫基础的读者进阶学习。目录前言一、小红书反爬机制概览二、环境准备2.1 Python环境2.2 浏览器驱动。

2201_76125261的博客 766

android listview中smoothscrolltoposition的问题

smoothscrolltoposition,我们知道这个方法是listview平滑的滑动到adapter中指定的item的位置,今天测了几次,发现如果item数据

iamws的专栏 1万+

Python 爬虫实战:全面解析雪球网用户投资组合数据采集

本文介绍了如何使用 Python 爬虫技术,抓取雪球网用户的投资组合信息。通过模拟登录、解析页面内容等步骤,获取了用户的持仓数据。未来,可以进一步探索以下方向:

2201_76125261的博客 1304

Android Listview smoothScrollToPosition 失效

Android Listview 遇到 smoothScrollToPosition()方法失效,或者滑动位置不准 项目中遇到的问题: private void updateListViewScrollPosition() { int position = searchedListViewAdapter.getPlayingPosition(); if ...

大木星的某卫星上的小角落 1247

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

android中listview调用setSelection(position)或者smoothScrollToPosition(position)不起作用

最近在项目中遇到一个很奇葩的问题,在listview中调用setSelection(position)或者smoothScrollToPosition(position)去跳转到指定的行时,无效。 在网上查了很多,但无外乎这几种方法:放到listview.post(new Runnable() { })在runnable中执行setSelection方法,或者让listview重新获得焦点,

u013026045的专栏 5157

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ListView smoothScrollToPosition 定位不准笨方法解决

有时需要列表平滑滚动到指定位置 但和预期位置有出入 网上查的原因说是Android的一个bug 解决方法如下 ListView.smoothScrollToPosition(0) ListView.postDelayed(new runnable){ ListView.setSelection(0) } ...

weixin_34258078的博客 1315

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

完美解决smoothScrollToPosition(0)失效的问题

我们知道,当调用 smoothScrollToPosition(0)方法,listView会快速的平滑的滑动到顶部。但是当listView加载的数据list太多的时候,这个方法就会失效,据网上的介绍,是因为这个方法会消耗太多的资源,所以不能完全处理完所有的items 回到顶部。于是就滑动到一个不确定的位置。那怎么解决这个问题呢,有两个方法可供选择: 方法一:使用setSelection(0

xx23x的博客 1万+

ListView setSelection 无效问题

一、api /** * Sets the currently selected item. If in touch mode, the item will not be selected * but it will still be positioned appropriately. If the specified selection position * is

zyw19871007的专栏 2567

android listview添加数据到顶部 动画,【Android 一般进阶】ListView滑动到顶部smoothScrollToPosition...

ListView一般用来展示数据,当不停的往下翻页,数据会不停的加载,数据也就会越来越多,listview也就越来越长。当用户想回到顶部的时候,难道还需要用户自己往上翻页吗?那也太落后了吧。一般会做一个按钮,跳转至顶部,有两种方式实现:1.使用setSelection(0),不过这样的跳转是没有动画的,瞬间到达顶部;2.使用smoothScrollToPosition(0),这样的跳转是有动画,有...

weixin_36259939的博客 656

smoothScrollToPositionFromTop和smoothScrollToPosition的区别

首先,学一个英语短语: such that 使得满足…的条件 两者的API文档分别如下: “`AbsListView.smoothScrollToPositionFromTop: Smoothly scroll to the specified adapter position.The view will scroll such that the indicated position

static_void_james的博客 2703

Android RecyclerView.smoothScrollToPosition()的实现

本以为RecyclerView会像ListView一样有smoothScrollToPosition的方法,用来做双击返回列表顶部的方法,但实际添加这个方法以后并没有什么卵用,于是查看器源代码 public void smoothScrollToPosition(int position) { if (mLayoutFrozen) { return;

lvshaorong的博客 9984

Android面试题---ListView

Android开发中ListView定位技巧与ScrollView嵌套问题解决方案:通过setSelection()和smoothScrollToPosition()可实现列表定位,需注意数据加载时机和性能优化;ScrollView内嵌ListView会导致显示不全,可通过自定义ListView重写onMeasure()解决,同时需处理图片错位问题,采用"可见则显示"策略。

xingfuyisheng的专栏 606

Listview滚动到指定ITEM

Listview.smoothScrollToPosition(position);

G的博客 2197

listview缓慢滚动到顶部的问题

listview快速滚动到顶部(没有缓冲过程): listView.setSelection(0); public void setSelection (int position) 设置当前选中项,为了支持可访问的子类重写此方法,必须首先调用父类的方法。 参数 position 索引,被选中的数据项(从0开始) listview缓慢滚动到顶部: listView.sm

u012883128的博客 785
上一篇: 水波纹效果使用
下一篇: XRecyclerView的Header包含ListView冲突解决(XRecyclerView嵌套ListView)
ithouse
博客等级 码龄12年 200粉丝 212原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ithouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值