[Android Pro] 精确记录和恢复ListView滑动位置
Android 记录 恢复 位置 Pro 滑动 listview 精确
2023-09-14 08:56:59 时间
reference to : http://blog.csdn.net/welovesunflower/article/details/7926512
工作中遇到一个需求,对ListView某一项操作后刷新ListView,但是如果直接刷新,界面上ListView从第一列开始显示,用户体验不好,于是在网上搜了一些恢复LIstView滑动位置的方法。解决办法如下:
1 :
// 设置ListView到记录的位置 mListView.setSelection(mPosition); mListView.setOnScrollListener(new OnScrollListener() { // 滚动状态改变时调用 @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // 不滚动时保存当前滚动到的位置 if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) { mPosition = mListView.getFirstVisiblePosition(); } } // 滚动时调用 @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { } });
2:
//给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);
相关文章
- 基于chromium for android开发Android浏览器
- android签名命令行,Android系统签名位置及命令
- 如何让Android平台像IPC一样实现GB28181前端设备接入
- android 短信验证码的实现
- iphone4装android,iPhone4可安装Android实现双系统启动.pdf
- android telephony 原理解析与开发指南_Android逆向pdf
- 【Android 安全】DEX 加密 ( 多 DEX 加载 | 65535 方法数限制和 MultiDex 配置 | PathClassLoader 类加载源码分析 | DexPathList )
- 【错误记录】Android 中调用 Process 命令行执行指令 ( java.lang.IllegalThreadStateException: process hasn‘t exited )
- 【错误记录】Android 编译时技术版本警告 ( 注解处理器与主应用支持的 Java 版本不匹配 )
- 【错误记录】Android Studio 编译报错 ( AppCompat does not support the current theme features )
- 【错误记录】Android Studio 编译报错 ( Error:Connection timed out: connect | 更新配置依赖仓库方式 )
- 【错误记录】编译 Android 版本的 ijkplayer 报错 ( You must define ANDROID_NDK before starting. | 下载指定版本 NDK )
- 【错误记录】编译 Android 版本的 ijkplayer 报错 ( ./init-android.sh: 第 37 行: cd: android/contrib/: 没有那个文件或目录 )
- 【ijkplayer】编译 Android 版本的 ijkplayer ⑥ ( 进入 ijkplayer-android/android 目录 | 执行 compile-ijk.sh 脚本完成编译 )
- 【错误记录】Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. ② | 升级 Gradle 版本 )
- 【错误记录】Android 应用安全检测漏洞修复 ( StrandHogg 漏洞 | 设置 Activity 组件 android:taskAffinity=““ )
- 【错误记录】Android Studio 编译报错 ( Module was compiled with an incompatible version of Kotlin. The binary )
- 【错误记录】Android Studio 编译报错 ( The project is using an incompatible version (AGP 7.4.2) of the Androi )
- android广播监听短信并显示内容详解手机开发
- Android开发中遇到的问题(五)——Eclipse导入Android项目出现”Invalid project description overlaps the location of another project”错误的解决办法详解手机开发
- Android、Debian 和 Ubuntu “荣膺”2016 安全缺陷最多的产品前三名
- 乐播科技冯森:我为什么不看好Android电视游戏
- android开发教程之日历项目实践(三)
- Android中的Button自定义点击效果实例代码
- Android中的android:layout_weight使用详解
- Android实现字幕滚动的方法