안드로이드 개발 질문/답변
(글 수 45,052)
OnScrollListener를 implements 하면
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
public void onScrollStateChanged(AbsListView view, int scollState) {
// TODO Auto-generated method stub
}
다음 두 메소드를 오버라이드 하잖아요
제가 하고 싶은건 현재 리스트의 끝을 보여주고 있고, 그 상태에서
한번 더 밑에서 위로 스크롤을 시도하면 다음내용을 더불러오려고 해요.
이렇게 하려다 보니 리스트의 끝을 보여주는 상태는 onScoll 에서 넘어온 인자로 알 수 있고
스크롤의 상태 변화는 onScrollStateChanged 로 알 수 있는데
이 둘의 인자를 한꺼번에 만족할때 다음 내용을 불러오려고 하려면 어떻게 해야하나요?




스크롤 상태가 IDLE상태일때 리스트뷰에 보여지는 아이템이 마지막이면 해당 작업을
쓰레드 또는 함수로 처리하시면 됩니다.
보여지는 아이템이 마지막 인덱스인지는 현재 리스트 아이템의 수에서 -1을 빼시면 됩니다.
private OnScrollListener listScrollListener = new OnScrollListener(){
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if(mIsLoding==true)
return;
int totalcount = mListItems.size();
if(totalcount==0)
return;
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE )
{
if( view.getLastVisiblePosition()==(totalcount-1)){
if(offset>mTotalRow){
mIsLoding = false;
return;
}
ListAppend();//직접함수 호출 또는 스레드 사용
//ListAppendThread thread = new ListAppendThread(0);
//thread.start();
}
}
}
};