listview记录当前滚动位置和还原位置
2016-07-18 18:38
169 查看
做到一个需求,一个listview,两个数据源切换.这就需要在切换前保存当前的listview的状态,切换回来的时候,还原状态.找了一下午,发现使用listview.getScrollY(),方法一直获取的值为0.无法保存状态. 这种方法也就行不通了.
最终用以下方式实现了,记录状态(主要记录当前显示的第一个item,和该item的位置):
int index = listView.getFirstVisiblePosition();
View childAt1 = listView.getChildAt(0);
int diff = childAt1 == null ? 0 : childAt1.getTop();
状态还原,只要一句代码便可实现:
最终用以下方式实现了,记录状态(主要记录当前显示的第一个item,和该item的位置):
int index = listView.getFirstVisiblePosition();
View childAt1 = listView.getChildAt(0);
int diff = childAt1 == null ? 0 : childAt1.getTop();
状态还原,只要一句代码便可实现:
listView.setSelectionFromTop(index, diff);
相关文章推荐
- Android的线程和线程池
- navicat安装运行及试用期
- Qt之图标切分与合并(关键是使用QPixmap的copy函数来拷贝整张图片的某个区域)
- <LeetCode> 题54:转换字符串到整数
- 漫步微积分六——极限的概念
- One or more constraints have not been satisfied.
- 专业单词
- 网络安全初级(友情扫描一个网站)
- Thinkphp3.2.3整合phpqrcode生成二维码
- 文成小盆友python-num11-(1) 线程 进程 协程
- Android Missing Styles. Is the correct theme chosen for this layout?
- jsp页面写jstl标签和el表达式
- thinkphp5 生成条形码整合
- 二叉排序树中查找元素的递归和非递归写法
- [Database] 表空间
- Derby
- iOS开发textField点击背景空白隐藏收起键盘的N种方法
- vim配置pyflakes
- hadoop 安装配置启动
- opencv-多通道图像混合