精确记录和恢复ListView滑动位置

工作中遇到一个需求,对ListView某一项操作后刷新ListView,但是如果直接刷新,界面上ListView从第一列开始显示,用户体验不好,于是在网上搜了一些恢复LIstView滑动位置的方法。解决办法如下:

//给ListView设置监听器
backgroundList.setOnScrollListener(scrollListener);
private OnScrollListener scrollListener = new OnScrollListener() {@Overridepublic void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) {}@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {// scrollPos记录当前可见的List顶端的一行的位置 scrollPos = myList.getFirstVisiblePosition(); }if (arrayList != null) {  View v=myList .getChildAt(0);scrollTop=(v==null)?0:v.getTop();}  }};调用setAdapter之后恢复位置:
myList .setSelectionFromTop(scrollPos, scrollTop);

 

参考:http://stackoverflow.com/questions/3014089/scroll-to-a-position-in-a-listview 


之前在网上搜到的,有另外两种方法
第一种:
在onScrollStateChanged里面 

scrolledX = listView.getScrollX(); 

 scrolledY = listView.getScrollY(); 

恢复时使用listView.scrollTo(scrolledX, scrolledY); 

 但是得到的scrolledY为0
第二种:
在onScrollStateChanged里面

position = listView.getFirstVisiblePosition(); 

用position记录显示在屏幕顶端的一个item,

恢复时使用listView.setSelection(position); 

但是这种方法不够精确
最后用setSelectionFromTop实现的

转载于:https://www.cnblogs.com/cc-Cheng/archive/2012/08/30/2714093.html

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

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

相关文章

时间戳倒计时

var defaultTimeStamp Math.floor(Date.now()/1000);var dayA defaultTimeStamp % (24 * 3600) //除去天数,得到剩余的小时时间戳var hourA dayA % (3600) //除去小时,得到剩余的分钟数时间戳var minuteA hourA % (60) …

python中使用sys模板和logging模块获取行号和函数名的方法

From: http://www.jb51.net/article/49026.htm 这篇文章主要介绍了python中使用sys模板和logging模块获取行号和函数名的方法,需要的朋友可以参考下对于python,这几天一直有两个问题在困扰我: 1.python中没办法直接取得当前的行号和函数名。这是有人在论坛里提出的问…

第二阶段冲刺(五)

昨天云服务 今天云服务 遇到的问题 转载于:https://www.cnblogs.com/qianxia/p/5525095.html

axios的content-type是自动设置的吗?

是根据提交的数据根式自动设置的 三种常见post提交和方式 axios中使用qs

MyBatis MapperScannerConfigurer配置——MyBatis学习笔记之八

在上一篇博文的示例中,我们在beans.xml中配置了studentMapper和teacherMapper,供我们需要时使用。但如果需要用到的映射器较多的话,采用这种配置方式就显得很低效。为了解决这个问题,我们可以使用MapperScannerConfigurer&#xf…

本地ip出口查询

获取/查看本机出口ip curl http://members.3322.org/dyndns/getip

使用Python获取Linux系统的各种信息

From: http://www.jb51.net/article/52058.htm 这篇文章主要介绍了使用Python获取Linux系统的各种信息,例如系统类型、CPU信息、内存信息、块设备等,需要的朋友可以参考下在本文中,我们将会探索使用Python编程语言工具来检索Linux系统各种信息。走你。 哪个Python版…

本地如何搭建IPv6环境测试你的APP

IPv6的简介 IPv4 和 IPv6的区别就是 IP 地址前者是 .(dot)分割,后者是以 :(冒号)分割的(更多详细信息自行搜索)。 PS:在使用 IPv6 的热点时候,记得手机开 飞行模式 哦&am…

HDU 2376 Average distance

HDU_2376 对于任意一棵子树来讲&#xff0c;以根节点为深度最浅的点的路径一共有两类&#xff0c;一类是以根节点为端点的路径&#xff0c;另一类是过根节点但端点分别在两棵子树中的路径。然后将无根树转化为有根树后dfs时计算出上面两类路径的长度即可。 #include<stdio.h…

meta http-equiv属性兼容浏览器_定时刷新

<meta http-equiv"X-UA-Compatible" content"IEedge"> #以上代码告诉IE浏览器&#xff0c;IE8/9及以后的版本都会以最高版本IE来渲染页面。 <meta http-equiv"refresh" content"30"> #每30秒钟刷新当前页面:

使用 Python 获取 Linux 系统信息的代码

From: http://www.jb51.net/article/52107.htm 在本文中&#xff0c;我们将会探索使用Python编程语言工具来检索Linux系统各种信息,需要的朋友可以参考下哪个Python版本? 当我提及Python&#xff0c;所指的就是CPython 2(准确的是2.7).我会显式提醒那些相同的代码在CPython 3 …

利用FPGA加速实现高性能计算

原文链接 原因&#xff1a;处理器本身无法满足高性能计算(HPC)应用软件的性能需求&#xff0c;导致需求和性能 之间出现了缺口。最初解决办法&#xff1a;使用协处理器来提升处理器的性能。协处理器&#xff08;基于硬件的设计&#xff09;具有三种能力&#xff1a;1.专门的硬件…

CSS实现半透明div层的方法

很不错的CSS透明效果&#xff0c;本实例是用CSS控制外层DIV不透明&#xff0c;而内层DIV透明&#xff0c;这样实现的效果是意想不到的&#xff0c;还不错吧&#xff0c;其实代码也是很简单的&#xff0c;也很好理解&#xff0c;主要是用了CSS的滤镜。 <html xmlns"http…

bootstrap .navbar-header 控制button隐藏/显示

bootstrap 的导航条标签做的很完美&#xff01;我们用这个标签主要解决手机端和PC端适配的问题&#xff0c;结果复制过来不能用。。 检查&#xff1a;是否引入bootstrap.css js; 再重点检查有没有下面这行代码。 <meta name"viewport" content"widthdevi…

“Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported“解决方法

项目接口返回 code: 500 data: null message: “Content type ‘application/x-www-form-urlencoded;charsetUTF-8’ not supported” 原因在于&#xff0c;接口不支持application/x-www-form-urlencoded;charsetUTF-8 通过看swagger的接口传递数据类型来修改&#xff0c; 将…

新建第一个windows服务(Windows Service)

首先&#xff0c;请原谅我是一个小白&#xff0c;一直到前段时间才在工作需要的情况下写了第一个windows服务。首先说一下为什么写这个windows服务吧&#xff0c;也就是什么需求要我来写这么一个东西。公司的项目中&#xff0c;需要一个预警功能&#xff08;从数据库里取出需要…

Python获取电脑硬件信息及状态的实现方法

From: http://www.jb51.net/article/54470.htm 这篇文章主要介绍了Python获取电脑硬件信息及状态的实现方法,是一个很实用的技巧,需要的朋友可以参考下本文以实例形式展示了Python获取电脑硬件信息及状态的实现方法&#xff0c;是Python程序设计中很有实用价值的技巧。分享给大…

通过类或ID记录上一个被选中的标签或者数字

通过类或ID记录上一个被选中的标签或者数字 $(function () {$(document).on(click, .navbar-nav li a, function (e) {var $parant $(.navbar-nav li).index($(.navbar-nav li.active))var $index $(.navbar-nav li a).index(this)console.log($parant,$index);})})

windows2008下配置iis时出现错误“由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。”...

iis7配置php的时候配置完后可以访问php页面&#xff0c;但是重启后就出现403&#xff0c;“由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本&#xff0c;请添加处理程序。如果应下载文件&#xff0c;请添加 MIME 映射。” 检查后发现cgi.exe处于禁用状态&…

Windows PowerShell安装指定版本vue/cli脚手架失效解决办法;vue : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\vue

mac搭建vue项目看这篇 打开shift——鼠标右键&#xff0c;就可以打开Windows PowerShell 1.安装vue/cli npm install -g vue/cli3.12.0 后面是版本号 2.安装完成后查看 使用过 vue -V 查看vue/cli版本号 &#xff08;如果查看找不到版本&#xff0c;使用命令行创建项目vue …