Android – ListView para cargar más elementos al llegar al final
He implementado con éxito un listView donde cada fila es un objeto que he creado. Tengo una interfaz que lee algunos objetos y devuelve una matriz de ellos, que paso al constructor del adaptador. Lo que quiero hacer es, ya que la lista puede ser muy larga, Mi interfaz permite leer cada vez más elementos (página 0, página 1 …) así que quiero, cuando el usuario llega a la última fila de la lista, cargue la siguiente página e introdúzcala en el listView. ¿Cuál es la forma correcta de hacerlo? En realidad, quiero que el "alcance final de lista" desencadenar una devolución de llamada donde puedo solicitar más páginas y cargarlos a la lista. Un poco OT a mi pregunta principal, pero no me importa usar un baseAdapter, ambos trabajaría, apenas no sé cuál es mejor para la tarea.
- Multiline EditText en los problemas de desplazamiento de RecyclerView
- Sincronizar todo el ListView en un ViewPager
- Sólo en algunos teléfonos, ListView no se actualiza después de notifyDataSetChanged ()
- cómo establecer el checked / unchecked de CheckedTextView
- Scrollview vs listview en android
- GetTag () devuelve siempre null cuando se llama en fragmento
- Desplazarse mediante programación a una posición específica en un ListView de Android
- Arrastre el elemento de lista desplegable en otro elemento
- Filtrado personalizado ArrayAdapter en ListView
- ListView de Android con ViewHolder
- Cómo utilizar D-pad navegar cambiar entre la fila de listview y sus decendants (soporte de Google-TV)
- Eliminar lista de elementos con Diapositiva, como Gmail
- Establecimiento de diferentes colores de divisor para cada elemento en la vista de lista
Puede agregar un pie en el listView que tendrá un botón llamado LoadMore. Aquí hay un tutorial completo ListView con el botón Load More o puede implementar onscrolllistener () y agregar este listener a su ListView
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { this.currentFirstVisibleItem = firstVisibleItem; this.currentVisibleItemCount = visibleItemCount; } public void onScrollStateChanged(AbsListView view, int scrollState) { this.currentScrollState = scrollState; this.isScrollCompleted(); } private void isScrollCompleted() { if (this.currentVisibleItemCount > 0 && this.currentScrollState == SCROLL_STATE_IDLE) { /*** In this way I detect if there's been a scroll which has completed ***/ /*** do the work for load more date! ***/ if(!isLoading){ isLoading = true; loadMoreData(); } } }
Espero que ayude
- Obtener el valor de color de píxel de un punto en una vista de Android que incluye un lienzo con respaldo de mapa de bits
- ¿Por qué crear imeActionId con un recurso de ID predefinido crea un error?