tienen - Android carga dinĂ¡micamente Listview en el extremo de desplazamiento?
que celulares tienen carga inalambrica 2018 (6)
El código de Heiko Rupp es la mejor opción para este problema. Lo único que debes hacer es implementar onScrollListener
y en onScroll()
solo verificar si hay un final de lista usando el código
boolean loadMore = firstVisibleItem + visibleItemCount >= totalItemCount-1;
si es cierto cargue sus datos con la moda habitual ...
thaks Heiko Rupp por este fragmento :)
Estoy cargando una vista de lista del servidor Http, 20 a la vez. Al final de Listview quiero cargar los próximos 20 datos del servidor y este proceso continuará hasta que los datos terminen en el servidor, utilicé la clase que amplía BaseAdapter para poblar los primeros 20 datos. ¿Qué debería hacer?
Esta parece ser una solución elegante también: http://benjii.me/2010/08/endless-scrolling-listview-in-android/
También implementa un AbsListView.OnScrollListener
, y utiliza una AsyncTask para cargar más contenido tan pronto como se alcanza un cierto umbral de los elementos restantes en la vista de desplazamiento actual.
Esto es lo que solía cargar más datos al final de la lista
listview.setOnScrollListener(new OnScrollListener(){
@Override
public void onScroll(AbsListView view,
int firstVisibleItem, int visibleItemCount,
int totalItemCount) {
//Algorithm to check if the last item is visible or not
final int lastItem = firstVisibleItem + visibleItemCount;
if(lastItem == totalItemCount){
// you have reached end of list, load more data
}
}
@Override
public void onScrollStateChanged(AbsListView view,int scrollState) {
//blank, not using this
}
});
Ok, he visto que este es un problema común, así que hice una BIBLIOTECA PEQUEÑA con carga personalizada más y tire para actualizar ListView en github , por favor revise here , todo está muy explicado en el repositorio.
Puede implementar un AbsListView.OnScrollListener
, que se informa y que le permite cargar más datos.
Ver por ej.
....
ListView.setOnScrollListener(this);
....
Y luego eche un vistazo a https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/TweetListActivity.java#L287
O eche un vistazo al ejemplo de List9 de los ejemplos de sdk.
Tuve este problema cuando accidentalmente intentaba actualizar una vista desde un hilo que no era de la interfaz de usuario. Al presionar el código de actualización ui al hilo de la interfaz de usuario resolvió mi problema.
Handler mainHandler = new Handler(Looper.getMainLooper());
mainHandler.post(new Runnable() {
@Override
public void run() {
// insert ui update code here
}
}
});