Android ListView setOnScrollListener

Estoy teniendo problema con mi setOnScrollListener. Sólo sigue llamando a mi asynctask cada vez que se desplaza a la parte inferior de la lista. ¿Cómo puedo configurar el setOnScrollListener para cargar sólo una vez que llego a la parte inferior.

listview.setAdapter(adapter); mProgressDialog.dismiss(); listview.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { int lastInScreen = firstVisibleItem + visibleItemCount; if (lastInScreen == totalItemCount) { new loadmore().execute(); } else { } } }); 

El método OnScroll se llama cada vez que se desplaza hacia abajo en la vista de lista, por lo que la mejor opción para usted es utilizar algún tipo de relleno, como el implementado aquí .

 public class EndlessScrollListener implements OnScrollListener private int visibleThreshold = 5; private int currentPage = 0; private int previousTotal = 0; private boolean loading = true; public EndlessScrollListener() { } public EndlessScrollListener(int visibleThreshold) { this.visibleThreshold = visibleThreshold; } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (loading) { if (totalItemCount > previousTotal) { loading = false; previousTotal = totalItemCount; currentPage++; } } if (!loading && (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold)) { // I load the next page of gigs using a background task, // but you can call any function here. new LoadGigsTask().execute(currentPage + 1); loading = true; } } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } } 

VisibleThreshold – La cantidad mínima de elementos que debe tener por debajo de su posición de desplazamiento actual, antes de cargar más.

CurrentPage – La página actual de los datos que ha cargado

PreviousTotal – El número total de elementos en el conjunto de datos después de la última carga

Loading – True si todavía estamos esperando el último conjunto de datos para cargar.

  • Vista personalizada vacía en ListView android
  • SmoothScrollToPosition después de notifyDataSetChanged no funciona en android
  • SetOnItemClickListener en ListView que amplía la actividad
  • Cómo mostrar un botón al final de un ListView de Android
  • Error al agregar nuevos datos a ListView con ArrayAdapter
  • ¿Cómo puedo obtener los resultados de análisis de Android Wifi en una lista?
  • Realizar una llamada desde ListView (OnitemClick)
  • Cómo utilizar View Holder al tener filas diferentes en un ListView
  • Listview dentro de listview y problema con height de la lista anidada listview
  • Botón de Android en el elemento ListView para cambiar el texto en la misma fila
  • ListView no aparece en MainActivty de mi aplicación (una imagen adjunta)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.