이번에는 리스트뷰에서 스크롤이 바닦에 닿았을때를 체크하는 방법을 포스팅 해보겠습니다.
이런 방법으로 스크롤의 상태를 체크하게 되면 스크롤이 최하단으로 내려갔을때 자동으로 다음 페이지의 데이터를 가져온다던가 하는(일명 무한스크롤) 일을 할수 있겠죠?
boolean lastitemVisibleFlag = false; //화면에 리스트의 마지막 아이템이 보여지는지 체크
listview.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
//현재 화면에 보이는 첫번째 리스트 아이템의 번호(firstVisibleItem) + 현재 화면에 보이는 리스트 아이템의 갯수(visibleItemCount)가 리스트 전체의 갯수(totalItemCount) -1 보다 크거나 같을때
lastItemVisibleFlag = (totalItemCount > 0) && (firstVisibleItem + visibleItemCount >= totalItemCount;
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
//OnScrollListener.SCROLL_STATE_IDLE은 스크롤이 이동하다가 멈추었을때 발생되는 스크롤 상태입니다.
//즉 스크롤이 바닦에 닿아 멈춘 상태에 처리를 하겠다는 뜻
if(scrollState == OnScrollListener.SCROLL_STATE_IDLE && lastItemVisibleFlag) {
//TODO 화면이 바닦에 닿을때 처리
}
}
});
위처럼 스크롤이벤트를 통해서 쉽게 리스트의 끝을 체크할수 있습니다.'Mobile > Android' 카테고리의 다른 글
| [Android] ListView에서 Single Tap, Double Tap 사용하기 (0) | 2013.11.14 |
|---|---|
| [Android] ListView에서 OnItemClick 이벤트가 실행되지 않을때 (2) | 2013.11.14 |
| [Android] ListView에서 스크롤 방향 체크하기 (0) | 2013.11.14 |
| [Android]- java code로 view.getWidth(), view.getHeight()가 0이 나올때 (0) | 2013.11.14 |
| [Android] 외부(오픈소스) 라이브러리 사용하기 (0) | 2013.11.14 |