2013-05-13 17 views
13

Listenin sonunu bulmak için Scroll yöntemini kontrol ettiğim özel bir ızgara görünümüm var. Kaydırma listenin sonuna ulaşırsa, tekrar listeye birkaç öğe ekler.Gridview onScroll yöntemi, kullanıcı kaydırması olmadan her zaman çağrılır

private class LoadDataTask extends AsyncTask<Void, Void, Void> { 

    @Override 
    protected Void doInBackground(Void... params) { 

     if (isCancelled()) { 
      return null; 
     } 
     loadingMore = true; 
     for (int i = 0; i < mNames.length; i++) 
      mListItems.add(mNames[i]); 

     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     mListItems.add("Added after load more"); 


     loadingMore=false; 
     adapter.notifyDataSetChanged(); 
     super.onPostExecute(result); 
    } 

    @Override 
    protected void onCancelled() { 

    } 
} 

gridview.setOnScrollListener(new OnScrollListener() { 

     @Override 
     public void onScrollStateChanged(AbsListView arg0, int arg1) { 

     } 

     @Override 
     public void onScroll(AbsListView arg0, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
      // TODO Auto-generated method stub 

      int lastInScreen = firstVisibleItem + visibleItemCount;  


      //is the bottom item visible & not loading more already ? Load more ! 
      if((lastInScreen == totalItemCount) && (!loadingMore)) 
      { 
       new LoadDataTask().execute(); 

      } 
     } 
    }); 

Ve bu benim Asenkron görev sınıftır .. Şimdi mesele onScroll yöntem çağırarak devam olmasıdır. Kullanıcı kaydırmazken bile durmuyor. Herkesin bir çözümü olabilir mi?

cevap

İlgili konular