Android 스크롤 끝에서 동적으로 Listview를로드합니까?
Http 서버에서 한 번에 20 개씩 목록보기를로드 중입니다. 목록보기가 끝나면 서버에서 다음 20 개 데이터를로드하고 싶습니다. 이 프로세스는 서버에서 데이터가 끝날 때까지 계속됩니다 .BaseAdapter를 확장하여 처음 20 개를 채우는 클래스를 사용했습니다. 데이터. 어떻게해야합니까 ??
이것은 우아한 솔루션으로 보입니다. http://benjii.me/2010/08/endless-scrolling-listview-in-android/
AbsListView.OnScrollListener
또한를 구현하고 AsyncTask를 사용하여 현재 스크롤 뷰에 남아있는 항목의 특정 임계 값에 도달하는 즉시 더 많은 콘텐츠를로드합니다.
Ok 나는 이것이 일반적인 문제라는 것을 보았으므로 사용자 정의로드 가있는 작은 라이브러리 를 더 만들고 github 에서 ListView를 새로 고 칩니다 . 여기 에서 확인 하십시오 . 모든 것이 저장소에 설명되어 있습니다.
AbsListView.OnScrollListener
정보를 얻고 더 많은 데이터를로드 할 수있는를 구현할 수 있습니다 .
예를 참조하십시오
....
ListView.setOnScrollListener(this);
....
그런 다음 https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/TweetListActivity.java#L287을 살펴보십시오.
또는 sdk 예제에서 List9 예제 를 살펴보십시오 .
Heiko Rupp의 코드는이 문제에 대한 최선의 선택입니다. 당신이해야 할 유일한 일은 코드를 사용하여 목록의 끝이 있는지 확인 onScrollListener
하고 구현 onScroll()
하는 것입니다.
boolean loadMore = firstVisibleItem + visibleItemCount >= totalItemCount-1;
사실이라면 정기적 인 방식으로 데이터를로드합니다.
이 스 니펫에 대한 thaks Heiko Rupp :)
이것은 목록보기의 끝에서 더 많은 데이터를로드하는 데 사용한 것입니다.
listview.setOnScrollListener(new OnScrollListener(){
@Override
public void onScroll(AbsListView view,
int firstVisibleItem, int visibleItemCount,
int totalItemCount) {
//Algorithm to check if the last item is visible or not
final int lastItem = firstVisibleItem + visibleItemCount;
if(lastItem == totalItemCount){
// you have reached end of list, load more data
}
}
@Override
public void onScrollStateChanged(AbsListView view,int scrollState) {
//blank, not using this
}
});
비 UI 스레드에서 뷰를 실수로 업데이트하려고 할 때이 문제가 발생했습니다. ui 업데이트 코드를 ui 스레드에 푸시하면 문제가 해결되었습니다!
Handler mainHandler = new Handler(Looper.getMainLooper());
mainHandler.post(new Runnable() {
@Override
public void run() {
// insert ui update code here
}
}
});
참고 URL : https://stackoverflow.com/questions/5065339/android-dynamically-load-listview-at-scroll-end
'Programing' 카테고리의 다른 글
CVS에서 Git으로의 마이그레이션 도구가 있습니까? (0) | 2020.11.25 |
---|---|
Java 게임에서 가비지 수집 지연을 방지하려면 어떻게해야합니까? (0) | 2020.11.25 |
clang 플래그의 전체 목록? (0) | 2020.11.25 |
Spring HandlerInterceptor 대 서블릿 필터 (0) | 2020.11.25 |
R의 glm 모델에 모든 양방향 상호 작용을 자동으로 포함하는 방법 (0) | 2020.11.25 |