Android学习记录(二十七)--ListView刷新记录滑动位置的实现。
2016-07-27 09:25
513 查看
在listview中实现文件系统时,目录层级跳转,采用activity跳转的话,压栈可能会非常的多,这种实现是不合理的。如果不压栈的话,如果回退到上一次目录,就需要记录上一次滑动的位置。本文记录一下记录滑动位置的实现。实现方法:1.记录跳转时的滑动位置。这个比较讲究,实际使用时,发现如果记录的纯坐标用scrollto的方法来滑动时,listview会有滑动跳变,滑动位置不准确的问题。如果只记录顶部的元素,不记录偏移,会有一定的偏移。本例中是同时记录顶部元素的index和对应的偏移。
具体的代码如下:
public ScrollLocation getScrollY() { View c = listView.getChildAt(0); if (c == null) { return null; } int firstVisiblePosition = listView.getFirstVisiblePosition(); int top = c.getTop(); ScrollLocation location=new ScrollLocation(); location.position=firstVisiblePosition; location.scrolly=top; return location; }2.listview 回退的时候,返回上一层记录的位置。listview有如下的方法实现位移,实际使用该方法比较好。
listView.setSelectionFromTop(position,scrolly);
相关文章推荐
- Android收缩式菜单demo
- Android--------Service
- Android开发TextView实现长按复制文本功能的方法
- 分分钟教你学会 ToolBar 的使用
- Android抽象布局——include、merge 、ViewStub
- Android Studio常用快捷键
- Android 屏幕适配方案
- 【Android】彻底理解ldpi、mdpi、hdpi、xhdpi、xxhdpi
- Android自定义控件之基本原理(一)
- 在代码中设置RelativeLayout布局中标签的android:layout_toLeftOf、android:layout_toRightOf等属性
- android 中Drawable跟Bitmap转换及常用于图片相关操作方法 - Android
- Android开发BroadcastReceiver详解
- Android 滑动导航菜单的快速构建(一)
- android日常整理
- Android线性布局LinearLayout,及盒模型,weight权值,ScrollView和HorizontalScrollView【内容溢出(内容太多,高度/宽度大于能显示的最大高度/宽度)】
- Android:学习AIDL,这一篇文章就够了(下)
- Android之ViewPagerindicator
- Android开发 整体学习路线
- ubuntu下Android4.4 CTSVerifier运行(四)
- ubuntu下Android4.4 CTS运行(三)