2014-03-01 82 views

回答

2

在一個Runnable比較getLastVisiblePosition()getCount(),看看整個ListView的在屏幕上,一旦它已經繪就適合。您還應該檢查最後一個可見行是否完全適合屏幕。

創建了Runnable:

ListView listView; 
Runnable fitsOnScreen = new Runnable() { 
    @Override 
    public void run() { 
     int last = listView.getLastVisiblePosition(); 
     if(last == listView.getCount() - 1 && listView.getChildAt(last).getBottom() <= listView.getHeight()) { 
      // It fits! 
     } 
     else { 
      // It doesn't fit... 
     } 
    } 
}; 

onCreate()隊列中ListView控件的處理程序可運行的:

listView.post(fitsOnScreen); 
0

一個OnScrollListener可以給你一個ListView的滾動狀態。滾動狀態可以是FLING,IDLE或TOUCH_SCROLL。在您的情況使用以下(僞):

onScrollStateChanged(AbsListView view, int scrollState){ 
    listView.setStackFromBottom(scrollState != OnScrollListener.SCROLL_STATE_IDLE); 
}