2012-12-11 33 views
0

我想知道有沒有什麼辦法來限制圖像在GridView中顯示的金額。我創建了一個gridview,我可能需要顯示大量的圖像。因此,我想實現默認只顯示30個圖像的系統,並且會出現一個「加載更多」按鈕,用戶可以將更多內容加載到網格視圖中。但我有點迷失在這裏,我不知道如何進步或尋找什麼。我需要一些關於這個問題的指針。任何意見將不勝感激。提前致謝。限制數量的圖像顯示在GridView控件

回答

3

GridView控件使用BaseAdapter來獲得它的項目,所以如果你想改變量,以顯示你必須改變它的適配器。像這樣:

public class ImagePageAdapter extends BaseAdapter { 
    private boolean loadAll = false; 

    public void setTrue(){ 
     loadAll = true; 
    } 

    @Override 
    public int getCount() { 
    if(loadAll) return getAmount(); 
    return 30; 
    } 

    @Override 
    public Object getItem(int position) { 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent){ 
     if(convertView == null) return getImage(position); 
     else{ 
      //reuse convertview 
     } 
    } 

所以,你只需要調用setTrue(),並讓GridView控件現在它需要重新加載。

+0

謝謝你的回覆。因此,根據您提供的答案,默認情況下只會加載30個圖像,一旦您調用setTrue(),它會加載所有圖像?加載完所有圖像後,我需要重新加載GridView以使圖像顯示出來?精確度爲 –

+0

:GridView使用ListAdapter。 BaseAdapter碰巧是其中的一個,不是唯一的,也不是最簡單的一個。你的getView實現也很奇怪。和'setTrue'?這是一種什麼樣的方法名稱? – njzk2

+0

我知道這只是一個例子。作爲程序員,我只是假設你會知道方法名稱對功能無關緊要。是的,它默認加載30,你必須測試它自動更新或者你必須調用gridView.invalidate()或gridView.postInvalidate()。 –