cómo detectar Android ListView Scrolling detenido?

OnScrollListener#onScrollStateChanged(SCROLL_STATE_IDLE) hacer algo después de OnScrollListener#onScrollStateChanged(SCROLL_STATE_IDLE) que traté de usar OnScrollListener#onScrollStateChanged(SCROLL_STATE_IDLE) para detectar cuándo se detuvo el desplazamiento ( TOUCH_SCROLL or FLING ) (en 1.5 se ejecuta como esperaba). Pero cuando se ejecuta en 2.0, onScrollStateChanged no puede recibir el evento después de soltar el dedo. ¿Hay alguna callback o de todos modos para detectar ese evento?

Trate de usar setOnScrollListener e implemente onScrollStateChanged con scrollState == 0 … haga lo que necesita hacer …

 setOnScrollListener(new OnScrollListener() { public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // TODO Auto-generated method stub } public void onScrollStateChanged(AbsListView view, int scrollState) { if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) { Log.i("a", "scrolling stopped..."); } } }); 

El truco es hacer un seguimiento de cuándo el usuario está arrojando y cuándo no. Parece que se trata de la única distinción que puedes hacer porque, como dijiste, las transiciones desde el desplazamiento con el dedo al ralentí no se graban. Esto es de lo que estoy hablando:

 public void onScrollStateChanged(AbsListView view, int scrollState) { if (scrollState != OnScrollListener.SCROLL_STATE_FLING) { flinging = false; int count = view.getChildCount(); for (int i = 0; i < count; i++) { View convertView = view.getChildAt(i); Recipe recipe = (Recipe) convertView.getTag(); ImageView image = (ImageView) convertView.findViewById(R.id.icon); if (recipe != null && recipe.getImageURL() != null) { ImageLoader.loadImage(this, image, recipe.getImageURL()); } } } else { flinging = true; } } 

Y luego en el adaptador de ListView:

 public View getView(int position, View convertView, ViewGroup parent) { // Bunch of code.... if (!flinging) { ImageLoader.loadImage(BrowseRecipes.this, image, recipe.getImageURL()); } } 

Entonces, en lugar de reactjsr ante el cambio en el oyente, simplemente cargue las imágenes (o lo que sea que necesite hacer de manera intensiva) en primer lugar, siempre y cuando no haya aventuras.

Todo esto está sacado de mi proyecto aquí: https://github.com/pkulak/mealfire_android