2014-03-04 24 views
0

我有一個用於列表視圖的自定義適配器。它有3個字段:縮略圖和兩個文本字段。Android ListView:僅在滾動時加載項目

佈局膨脹後,縮略圖將從外部服務器下載。

如何更改功能,以便僅在用戶向下滾動時下載圖像。

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    // Inflate the layout 
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View rowView = inflater.inflate(R.layout.list_single, parent, false); 

    ImageView image = (ImageView) rowView.findViewById(R.id.picture); 
    TextView firstline = (TextView) rowView.findViewById(R.id.firstline); 
    TextView secondline = (TextView) rowView.findViewById(R.id.secondline);   

    // Get information about the report 
    AnimalLocationLog current = objects.get(position); 

    // Get all the important information 
    String species = current.getSpecies(); 
    String sanitizedSpecies = MiscHelpers.sanitizeString(species); 
    int reportId = objects.get(position).getTrackerId(); 

    // Construct the URL to the image 
    String imageLocation = websiteUrl + sanitizedSpecies + separator + reportId + extension; 

    // Display user report   
    downloader.download(imageLocation, image);   
    firstline.setText(species); 
    secondline.setText("Spotted " + current.getDateTime().toString("yyyy-MM-dd H:m")); 

    return rowView; 
} 
+2

此代碼看起來像它會做你已經需要的東西。 –

+0

@AdamS是正確的只有在列表視圖需要屏幕上的視圖時調用getView。 – Decoy

+0

謝謝@AdamS - 請發表一個答案,我會接受它 – chuckfinley

回答

0

添加OnScrollListenerListViewListView.setOnScrollListener()並執行下載的ScrollListener.onScroll()方法。您可以使用ListView.getLastVisiblePosition()來確定哪些列表項可見,哪些不可見。

相關問題