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

http://androidren.com/index.php?qa=365&qa_1=listview%E5%A6%82%E4%BD%95%E6%BB%9A%E5%8A%A8%E5%92%8C%E6%81%A2%E5%A4%8D%E5%88%B0%E6%9F%90%E4%B8%AA%E4%BD%8D%E7%BD%AE


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); // 恢复刚才的位置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值