博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
精确记录和恢复ListView滑动位置
阅读量:6252 次
发布时间:2019-06-22

本文共 1477 字,大约阅读时间需要 4 分钟。

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

//给ListView设置监听器backgroundList.setOnScrollListener(scrollListener);private OnScrollListener scrollListener = new OnScrollListener() {                 @Override                public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) {                }                 @Override                public 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

你可能感兴趣的文章
2019年目标
查看>>
[SDOI2017]数字表格【莫比乌斯反演】
查看>>
每日一句(11)
查看>>
搭建nexus3版的maven私服(Centos7环境)
查看>>
[TJOI2017]可乐
查看>>
网易云信案例简析:锤科情怀缩影,子弹短信路在何方?
查看>>
c#-SimHash匹配相似-算法
查看>>
字符复习
查看>>
Linux系统挂载ntfs分区
查看>>
10.常见数据库操作1
查看>>
JavaScript高级-定义函数(类)方法
查看>>
移动web图片高度自适应的解决方案
查看>>
API
查看>>
需求获取的前期工作(不断更新)
查看>>
10.23
查看>>
hdu5420 Victor and Proposition
查看>>
如何编写可移植的c/c++代码
查看>>
#pragma pack(n)
查看>>
IntelliJ IDEA 2018.3 升级功能介绍
查看>>
基于.NET平台常用的框架整理
查看>>