2010-04-11 64 views
2

我想在自定義ListAdapter中實現分頁。現在我只是在ListView中的最後一項變爲可見時提出下一頁的請求,方法是檢查getView()是否position>=的大小ListAdapter.getCount()ListView/ListAdapter分頁

它工作正常,但我想知道是否有更好的方式(或不同的方式)只會在列表中的最後一項對用戶可見時才發出請求。任何人都知道一種方式?

回答

4

我做它幾乎相同的方式:

public static final int SCROLLING_OFFSET = 5; 
// ... 
private final ArrayList<T> items = new ArrayList<T>(); 
// ... 
if (SCROLLING_OFFSET == items.size() - position) { 
    if (hasNextPage()) { 
     addNextPage(); 
    } 
} 

private boolean hasNextPage() { 
    // basically calculates whether the last 2 pages contained the same # of items 
} 

private void addNextPage() { 
    // show spinner 
    // fetch next page in a background thread 
    // add to items 
    notifyDataSetChanged(); 
} 
0

嘗試徹底刪除檢查。根據我的經驗,getView()僅在條目即將出現在屏幕上時調用。

+0

不知道你的意思。檢查必須在那裏,否則它會每行都分頁? – synic 2010-04-11 23:02:50

+0

請更詳細地描述它。 – OneWorld 2010-09-14 13:50:41