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); // 恢復剛纔的位置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章