欢迎来到 Android人的问与答 ,在这里提问或帮助他人解答。 Question2Answer的1.6.x和1.7.x版本的中文翻译包我修改更新:

Question2answer

如何使用中文语言包

Q2A 1.6.x - Chinese Simplified (简体中文)

Q2A 1.7.x - Chinese Simplified (简体中文)


国内服务器推荐 阿里云服务器
国外服务器推荐 DigitalOcean
VPN推荐 正版Green VPN
阿里云推荐码:ldvq50

ListView如何滚动和恢复到某个位置

0 喜欢 0 不喜欢
130 浏览
1、ListView.getScrollY() 这个一般一直是0,所以不能用这个方法。
 
2、ListView.getLocationOnScreen()或者ListView.getLocationInWindow() 这两个方法是可以的。
/**
* 滚动状态改变时调用
*/
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 不滚动时保存当前滚动到的位置
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
int pos[] = { -1, -1 };  //保存当前坐标的数组x,y
position = view.getLocationOnScreen(pos);
}
}
 
ListView.scrollTo(x,y); // 恢复刚才的位置
 
3、ListView.getFirstVisiblePosition()这个是得到可见Item位置的。
 
/**
* 滚动状态改变时调用
*/
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 不滚动时保存当前滚动到的位置
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
position = view.getFirstVisiblePosition();
}
}
 
ListView.setSelection(position); // 恢复刚才的位置
最新提问 3月 24, 2016 分类:Android View | 用户: forlong401 (7,050 分)

登录 或者 注册 后回答这个问题。

...