Animación de transición de diseño de Android al eliminar después agregar el mismo niño

Escenario: Estoy creando una función de arrastrar y soltar dentro de un diseño lineal. Es un diseño muy simple: un LinearLayout en la raíz y muchas vistas dentro (para fines de prueba son sólo instancias de la clase View con fondos de colores diferentes). He creado el sistema, usted puede "recoger" una vista que es causada por un clic largo en una de las vistas del niño. Esto crea la sombra de arrastre y en este punto llamo a removeView () en el contenedor para dar la impresión de que la vista se ha recogido. Mantengo esta visión en memoria. A medida que se arrastra la vista, se mueve una vista de marcador de posición para mostrar el lugar de la caída eventaul para la ubicación de arrastrar si se solta la sombra arrastrada. Esto también funciona bien y la vista eliminada se agrega de nuevo al índice donde estaba el marcador de posición.

Problema: Al activar 'android: animateLayoutChanges', las animaciones hacen que todo este proceso se vea mucho más suave. El único artefacto creado por esto es que cuando se arrastra la vista arrastrada (la misma vista que se eliminó cuando la arrastre arrancada se agrega de nuevo al contenedor) muestra una animación de transición desde la posición original de la vista arrastrada a su nueva posición. Al agregar una nueva vista (por ejemplo, el marcador de posición se crea cada vez que cambia de posición) se atenúa en su lugar.

Análisis: desde el aspecto de ello, el contenedor está recordando la vista que se eliminó y por lo tanto cuando se agrega la misma vista de nuevo, el animador lo interpreta como un movimiento en lugar de una nueva vista que se agrega.

Pregunta: ¿Cómo puedo evitar que este comportamiento del animador interprete la eliminación y la adición del mismo niño como un movimiento en lugar de eliminar y agregar operaciones separadas?

Respuesta: Aquí es donde entras.

Gracias por adelantado.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.