代碼:
- lv.setOnScrollListener(new OnScrollListener() {
- public void onScrollStateChanged(AbsListView view, int scrollState) {
- switch (scrollState) {
- // 當不滾動時
- case OnScrollListener.SCROLL_STATE_IDLE:
- // 判斷滾動到底部
- if (lv.getLastVisiblePosition() == (lv.getCount() - 1)) {
- }
- // 判斷滾動到頂部
- if(lv.getFirstVisiblePosition() == 0){
- }
- break;
- }
- }
- @Override
- public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
- if (firstVisibleItem + visibleItemCount == totalItemCount && !flag) {
- flag = true;
- } else
- flag = false;
- }
- };
firstVisibleItem :表示在屏幕中第一條顯示的數據在adapter中的位置,visibleItemCount 則是屏幕中最后一條數據在adapter中的數據,totalItemCount則是adapter中的總條數!
adapter(適配器)我們把其看做是一個list集合,可以在其中add很多的數據!而在屏幕中顯示的數據,
只是這個集合中的一部分!firstVisibleItem +visibleItemCount = 這個集合總條數(list.size())
以此判斷動態加載數據!