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.
- Cómo crear una sombra de arrastre personalizada?
- ¿Cómo obtener el objeto List View OnTouch?
- Zoom y arrastrar imágenes usando matriz en android
- OnDragListener no recibe DRAG_STARTED o DRAG_ENDED, pero obtiene ACTION_DROP
- Detección de vistas invisibles en un evento de movimiento
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.
- Recuperación de la posición exacta de la vista de Android
- ListView Reordenable mediante arrastrar y soltar
- Detenga OnLongClickListener disparando mientras arrastra
- Arrastrar y soltar para poner elementos de List1 a List2
- Jquery arrastrar caída cuelga o se queda bloqueado para el navegador android
- Drag and Drop + Fling Detector no funciona
- Android scroll mientras arrastra y suelta
- Hacer un lienzo transparente no transparente (tratando de sustituir el aspecto predeterminado de DragShadow con arrastrar y soltar en Android)