2011-03-10 168 views
1

我必須爲ListView的子類實現一種分頁。 當用戶向下滾動列表時,滾動結束,他查看最後一行,我必須請求下一頁數據(如果有的話)。向上滾動/第一行/上一頁同樣的事情。Android ListView:檢測滾動完成後第一行/最後一行是否可見

public class ContactList extends ListView implements OnGestureListener { 

    GestureDetector gestureDetector; 

    public ContactList(Context context) { 
     super(context); 
     gestureDetector = new GestureDetector(this); 
    } 

//Other ctors here...  
} 

然後,我將一個GestureDetector附加到ListView,並轉發給它所有的觸摸。

public boolean onTouchEvent(MotionEvent ev) { 
    return gestureDetector.onTouchEvent(ev); 
} 

我可以在OnGestureListener.onScroll()如果第一/最後一排檢測可見使用getFirst/LastVisiblePosition()

也許這種方法被稱爲之前的滾動發生?

謝謝你的幫助。

回答

5

我認爲你需要設置OnScrollListener您ListView和從onScroll回調收集的位置:在我

setOnScrollListener(new OnScrollListener() { 
     @Override 
     public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
      // You cat determine first and last visible items here 
      // final int lastVisibleItem = firstVisibleItem + visibleItemCount - 1; 
     } 

     @Override 
     public void onScrollStateChanged(AbsListView arg0, int arg1) { 
      // TODO Auto-generated method stub 
     } 
    }); 
+0

恥辱!當我搜索google搜索「android scroll listener」時,我發現沒有OnScrollListener的東西:(讓我有時間去研究它,非常感謝!:) – 2011-03-10 12:16:14

相關問題