El blog de Javielinux Usuario de Linux, Android developer, programador de aplicaciones web y experimentando con HTML5, CSS3 y Javascript

Detectar cuando se está moviendo un ListView y cuando se para

Para la nueva versión de TweetTopics andewebs me propuso cargar los avatar y los enlaces de los tweets sólo cuando el ListView estaba parado para así mejorar la velocidad y no recargar el sistema con la creación y cancelación de AsyncTask.

La mejora ha sido consirable y ahora al moverte por la lista de tweet todo funciona mejor.

A continuación os dejo un pequeño tips para que veáis como lo he hecho. La parte de control de los AsyncTask la dejo ya que eso cada uno en su programa lo hará a su forma.

Si vuestro layout en las filas contiene mucha información podéis probar a usarlo.

mListView = new ListView(this);
mListView.setOnScrollListener(new OnScrollListener() {

	@Override
	public void onScroll(AbsListView arg0, int firstVisibleItem, 
		int visibleItemCount, int totalItemCount) {			
	}

	@Override
	public void onScrollStateChanged(AbsListView view, int scrollState) {
				
		if (scrollState==SCROLL_STATE_TOUCH_SCROLL) {
			move = true;
		}
				
		if (scrollState != OnScrollListener.SCROLL_STATE_FLING
			&& scrollState!=SCROLL_STATE_TOUCH_SCROLL) {
			move = false;
			// código que quieres que se produzca cuando se para
		}
	}

});

....

public boolean isMoving() {
    return move;
}

Comentarios

Manolo Ruiz dice:
Javier, buenos dias,

Perdona, comentarte que en la web ..android.javielinux.com..
tienes puesta la marca SAMSUNG, pero la tienes escrita SAMGSUM, a todos nos pasa con diferentes nombres.

Bueno, saludos.
sophiaguo dice:
Pommereuil, Campagnes de Buonaparte? VIEWS AGAINST ITALY.cent governments to be revolutionized and newmodelled on a republican form, corresponding to that of the Great Nation herself. This scheme was, in every respect, an exceedingly artful one.

Escribir un comentario