ListView: evita que una vista se recicle

Tengo un ListView que utilizan las vistas recicladas. Estoy tratando de evitar que una vista recicle. Así que uso setHasTransientState:

Android.support.v4.view.ViewCompatJB.setHasTransientState (vista de vista, boolean hasTransientState)

Funciona muy bien en la versión Jellybean pero no hace nada en Api <16. ¿Hay alguna manera de hacerlo funcionar o hay un enfoque diferente para pre Jellybean?


Descubrí cómo establecer un RecyclerListener como @ Daniel Chow sugirió.

listView.setRecyclerListener(new RecyclerListener() { @Override public void onMovedToScrapHeap(View view) { // Stop animation on this view } }); 

Para pre Jellybean, creo que puedes usar setRecyclerListener en ListView y cuando se llama RecyclerListener # onMovedToScrapHeap (View view), borra la animación de la vista que ha sido reciclado y haz directamente el trabajo final que se suponía debía hacerse cuando terminaba la animación .

El código dentro de onMovedToScrapHeap (Ver vista) depende de cómo implementar la animación, por ejemplo, puede llamar View # clearAnimation () si anteriormente utilizó View # startAnimation para iniciar la animación.

Utilice android.support.v4.view.ViewCompat.setHasTransientState (vista de vista, boolean hasTransientState) en lugar de android.support.v4.view.ViewCompatJB.setHasTransientState (vista de vista, boolean hasTransientState)

Además del problema de la animación de Daniel habló, otro tema en el que saber cuándo se recicla su vista tiene que ver con la gestión de la memoria. Si está colocando mapas de bits grandes y con mucha memoria en los elementos de la lista, es posible que no quiera que su vista se recicle si no es probable que sea reutilizada por otros elementos. Este gancho le da la oportunidad de borrar el mapa de bits que puede haber asignado a un ImageView. Con suerte, este es un problema raro.

  • Escala una vista para el tamaño de otra vista usando ValueAnimator
  • La variable final podría no haber inicializado
  • Cómo setText de un hilo independiente en Android
  • Cómo agregar eventos de calendario al calendario predeterminado, en silencio sin intención, en android 4?
  • Finite State Machine (FSM) y Java de Android
  • El gestor de SDK no encuentra java
  • ¿Cómo puedo obligar a Proguard a guardar mi archivo de recursos .xml?
  • Obteniendo un valor único de SQLite en android
  • Cortar la imagen después de seleccionar el área mediante la detección de bordes en android
  • Android e IPv6 en Java
  • Video streaming usando NanoHttpd, Error: java.net.SocketException: sendto failed: EPIPE (Broken pipe)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.