Android--记录和恢复listView滚动位置的3种方法
2013-10-31 21:17
549 查看
转载自:http://blog.sina.com.cn/s/blog_7bac470701014530.html
有时在view切换时,需要恢复listView之前滚动到的位置,常用的三种方法如下:
1、记录listView滚动到的位置的坐标,然后利用listView.scrollTo精确的进行恢复
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
if (currentMenuInfo!=null) {
scrolledX = listView.getScrollX();
scrolledY = listView.getScrollY();
}
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
});
在恢复位置时调用:
listView.scrollTo(scrolledX, scrolledY);
2、记录listView显示在屏幕上的第一个item的位置,然后利用listView.setSelection恢复
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
position = listView.getFirstVisiblePosition();
}
有时在view切换时,需要恢复listView之前滚动到的位置,常用的三种方法如下:
1、记录listView滚动到的位置的坐标,然后利用listView.scrollTo精确的进行恢复
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
if (currentMenuInfo!=null) {
scrolledX = listView.getScrollX();
scrolledY = listView.getScrollY();
}
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
});
在恢复位置时调用:
listView.scrollTo(scrolledX, scrolledY);
2、记录listView显示在屏幕上的第一个item的位置,然后利用listView.setSelection恢复
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
position = listView.getFirstVisiblePosition();
}
相关文章推荐
- Android 软键盘盖住输入框的问题
- Android4.2.2 Gallery2源码分析(5)——GLCanvasImpl.java
- Android SurfaceView概述
- NineOldAndroidsDemos 学习(3) PathAnimationActivity
- Android 禁止多点触摸
- Android事件处理的2种方式:监听器与回调
- android适配器的概念(未完待续)
- Android Bundle存储数据类型
- Android soundpool初探
- Android下Notification,样式style,主题theme的功能实现
- NineOldAndroidsDemos 学习(2) ViewPropertyAnimator
- [转]【eoeAndroid索引】史上最牛最全android开发知识汇总
- android学习_AsyncTask(异步任务)
- Android使用GridView实现日历功能(详细代码)
- Android FrameLayout的android:foreground属性可以设置单击时的前景色
- android默认壁纸更改
- 【转】 Android之Service与IntentService的比较
- android 文字叠加显示在图片之上控件的实现 -- 充分利用TextView
- android默认时区
- 几个android 属性