ListView滑动位置精准记忆
需求场景:
一个ListView页面,滑动阅读到某一位置,然后退出页面,下次再进入页面的时候,想要直接滑动到上次阅读的位置。
方案1:
页面退出的时候,ListView.getFirstVisiblePosition()来获取当前可见的第一个Item的position并记录,下次再进入页面的时候通过ListView.setSelection(int position)把ListView直接滑动到记忆的position。
此方案记忆的ListView的位置不够精准,因为position指定的是ListView的Item的index,setSelection(int pos)只能把index为pos的item作为第一个可见的item来显示,所以item总是顶头显示的,不会显示滑出屏幕一半的item,所以ListView的位置只能定位到某个item的开始位置,并不精准。
方案1的升级:
在方案1的基础上,再记录FirstVisiblePosition item的top/bottom等位置参数,然后恢复的时候ListView再scrollTo一下。
此方案仍然不行,ListView的scrollTo没效果。
终极方案:
退出页面的时候:
1 |
Parcelable listState = listView.onSaveInstanceState(); |
记住listState对象;
再次进入页面的时候:
1 |
listView.onRestoreInstanceState(listState); |
记忆的位置分毫不差。
要注意:listView的状态记忆后,还要保证其数据在两次进入页面时的一致性;
另:ListView的header会影响其状态对象,不过这个是小问题。
转载于:https://www.cnblogs.com/mosthink/p/5288938.html
ListView滑动位置精准记忆相关推荐
- [Android Pro] 精确记录和恢复ListView滑动位置
reference to : http://blog.csdn.net/welovesunflower/article/details/7926512 工作中遇到一个需求,对ListView某一项操作 ...
- 精确记录和恢复ListView滑动位置
工作中遇到一个需求,对ListView某一项操作后刷新ListView,但是如果直接刷新,界面上ListView从第一列开始显示,用户体验不好,于是在网上搜了一些恢复LIstView滑动位置的方法.解 ...
- Android学习记录(二十七)--ListView刷新记录滑动位置的实现。
在listview中实现文件系统时,目录层级跳转,采用activity跳转的话,压栈可能会非常的多,这种实现是不合理的. 如果不压栈的话,如果回退到上一次目录,就需要记录上一次滑动的位置.本文记录一下 ...
- ListView滑动删除效果实现
通过继承ListView然后结合PopupWindow实现 首先是布局文件: delete_btn.xml:这里只需要一个Button <?xml version="1.0" ...
- Android在ListView滑动数据混乱
我相信做过Android应用程序开发或多或少都遇到了这个问题.或者是在ListView数据损坏幻灯片事件.要么GridView数据损坏幻灯片事件. 让我们来看看一个网友写的文章,个人感觉还不错的文章: ...
- Android之 如何解决ScrollView 和ListView滑动冲突的问题如何解决ScrollView can host only one direct child
android 采用ScrollView布局时出现异常:ScrollView can host only one direct child. 解决办法:主要是ScrollView内部只能有一个子元素, ...
- scrollview嵌套listview 滑动事件冲突的解决方法
scrollview嵌套listview 滑动事件冲突的解决方法 参考文章: (1)scrollview嵌套listview 滑动事件冲突的解决方法 (2)https://www.cnblogs.co ...
- vue-awesome-swiper 传参控制滑动位置 滚动位置 slideTo 备注防止后期忘记
接收半路项目,有个需求点击下面的轮播缩略图,控制上面轮播图滑动位置 <swiper :options="swiperOption1" ref="mySwiper&q ...
- (原创)使用AsyncTask(带修改线程池方式)+自定义ImageLoader+LRU算法对图片三级缓存及其显示优化(只有在ListView滑动停止的时候才去网络请求获取图片数据)
前言: 以前看了些关于图片优化处理缓存比较全的视频(感谢慕风网),现在回顾觉得还是挺好的也就总结出来下,感觉针对图片做处理这块还真的用的比较多,本文章只要使用异步线程AsyncTask.自定义的Ima ...
最新文章
- 计算机用户win7修改不,Win7电脑时间改不了的解决方法
- 可持续字典树 Perfect Security
- 互联网晚报 | 11月21日 星期日 | B站公布《三体》动画首个预告片;涪陵榨菜回应天价礼盒;农行个人贷款余额突破7万亿元...
- pdfContentByte 类 图像和文本的绝对位置
- Java-java.io.BufferedInputStream
- php+mysql开发实战 pdf_《PHP + MySQL 开发实战》怎么样_目录_pdf在线阅读 - 课课家教育...
- 使用Python和Numpy进行波士顿房价预测任务(一)【深度学习入门_学习笔记】
- 笔记︱金融风险之欺诈分类以及银行防控体系简述
- 深入浅出ObjC之消息
- 分布式服务防雪崩熔断器(Hystrix),实现服务降级
- 24. (附加)二叉搜索树的前续遍历序列(c++版本)
- Atitit React的相关概念东东 attilax总结 v3
- Qt公有槽和私有槽的区别
- java关键字有多少?
- 维纳滤波python 函数_加性高斯白噪声及维纳滤波的基本原理与Python实现
- 查看执行计划 oracle,查看Oracle执行计划的几种方法
- 软件开发安全左移最佳工具-iast
- 福建省2020年计算机学业水平考试时间,2020学业水平考试时间表
- Tanzu 学习系列之TKGm for vSphere 快速部署
- S3C2440裸机开发----点亮LED
热门文章
- LeetCode 595 Big Countries: SQL的题
- LeetCode 37. Sudoku Solver--数独求解(回溯法)--Java 3ms,Python 80ms 解法
- Oracle的REGEXP_INSTR再mysql中实现
- 汕头金山中学2021高考成绩查询,2019汕头市金山中学录取分数线及2019高考成绩喜报...
- SpringBoot-400-Bad-Request(Request-header-is-too-large)
- Swift的Guard语句
- k8s多master建议用几个_Kubernetes 教程之跟着官方文档从零搭建 K8S
- 全程pwm调光_dc调光的手机有哪些
- redis php数据插入失败,redis插入数据,恢复数据测试(禁止淘汰策略下恢复大于redis内存限制数据情况)...
- python抠图_python和opencv实现抠图