文档章节

回到ListView时还原原来的位置

daveztong
 daveztong
发布于 2014/11/06 21:25
字数 319
阅读 33
收藏 0
有这么一种需求,当我们在一个ListView中滚动到某个位置,途中返回到其他界面去了,再次进入这个ListView的时候希望能够回到原来的位置,有以下方法可以实现:
// save index and top position
int index = mList.getFirstVisiblePosition();
View v = mList.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();

// restore
mList.setSelectionFromTop(index, top);
这儿还需要一点解释:ListView.getFirstVisiblePosition()返回最顶端可见的一个条目,但这个条目可能有一部分已经不可见了,如果想精确的还原这个位置,就需要取到这个View的偏移量,ListView.getChildAt(0)返回最顶端条目的View,View.getTop()返回他的相对ListView的偏移量,所以当恢复ListView的位置时调用ListView.setSelectionFromTop()并传递想要展现的那个条目的索引(之前取到的)和之前的一个便宜量。当然如果不想恢复到那么精确的位置,简单的解决办法就是:
mList.getFirstVisiblePosition();
mList.setSelectionFromTop(index, 0);
直接给个0,不需要取到偏移量。 除了上面这种方法外,还有一种更加优雅的方式:
// Save ListView state
Parcelable state = listView.onSaveInstanceState();

// Set new items
listView.setAdapter(adapter);

// Restore previous state (including selected item index and scroll position)
listView.onRestoreInstanceState(state);
See more here.Stack上都是些神人啊!

© 著作权归作者所有

daveztong
粉丝 4
博文 93
码字总数 21482
作品 0
成都
程序员
私信 提问
over-scrolling效果--OverScrollDecor

OverScrollDecor是一款类似IOS的over-scrolling效果的软件,即对于滑动到顶部的View继续滑动时会超出,松手后自动还原到原始位置。支持ListView,GridView,ScrollView,WebView,RecyclerV...

jeasonlzy
2016/03/10
589
0
ListView回到Header位置

让ListView回到Header位置或者Footer位置,还有第一项元素位置,这个要是使用 ListView.setSelection(pos); 是不生效的,要换一个方法 ListView.setSelectionFromTop(0, 0);//回到ListView的...

hanQ
2013/03/22
231
0
HT for Web列表和3D拓扑组件的拖拽应用

很多可视化编辑器都或多或少有一些拖拽功能,比如从一个List列表中拖拽一个节点到拓扑组件上进行建模,并且在拖拽的过程中鼠标位置下会附带一个被拖拽节点的缩略图,那么今天我们就来实现这样...

xhload3d
2015/07/12
766
0
关于画面坐标问题!!!! [

这个是我的main布局分成了左右两部分(左右是1:2的比重,左右里都是listView) 我想实现的是当我点击右边listview的某一项时 通过设置 fragment的坐标 把左半部分视图移到看不见的某处(使其...

帅的稀碎
2012/11/28
151
0
欢乐的票圈重构之旅——RecyclerView的头尾布局增加

项目重构的Git地址:https://github.com/razerdp/FriendCircle 上集:欢乐的票圈重构之旅——RecyclerView的上下拉以及logo的联动 下集:欢乐的票圈重构——九宫格控件(上) 上集介绍 上集没...

2018/01/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
8
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
7
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
6
0
HTML5+CSS3从入门到精通 中文pdf版​

本文转载于:专业的前端网站➵HTML5+CSS3从入门到精通 中文pdf版 HTML5+CSS3从入门到精通是通过基础知识+中小实例+综合案例的方式,讲述了用HTML5+ CSS3设计构建网站的必备知识,相对于专业指...

前端老手
昨天
6
0
聊聊nacos client的ConfigFilterChainManager

序 本文主要研究一下nacos client的ConfigFilterChainManager IConfigFilterChain nacos-1.1.3/api/src/main/java/com/alibaba/nacos/api/config/filter/IConfigFilterChain.java public in......

go4it
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部