es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Después de reordenar los elementos en la vista de reciclador de Android, la posición no se actualiza.

En mi aplicación estoy mostrando una lista de botones en un RecyclerView, con la ayuda de ItemTouchHelper.SimpleCallback, en la función onMove puedo reordenar los botones, pero después de reordenar, la posición no se está actualizando. Por ejemplo: (si arrastré el botón1 de la posición 0 a la posición 1, entonces el botón1 debería mostrar que su nueva posición es 1, pero está mostrando la posición antigua, es decir, 0). ¿Hay algo que esté cambiando para que pueda acceder y conocer la nueva posición de mi botón? Cualquier ayuda sería apreciada.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para actualizar la posición del botón en su vista de reciclaje después de reordenar, debe actualizar el conjunto de datos que está poblado en la vista de reciclaje. En su caso, parece que está utilizando una lista (llamada “datalist”) para almacenar los datos que se muestran en la vista de reciclaje.

    Después de intercambiar las posiciones de los botones en la función onMove(), también debe actualizar las posiciones en la datalist. Una forma de hacerlo es actualizar las posiciones directamente en la datalist utilizando el mismo código que se utiliza para intercambiar los botones:

    Collections.swap(datalist,fromPosition,toPosition);
    

    Después de actualizar la datalist, debe notificar al adaptador de la vista de reciclaje para que actualice la vista con el nuevo conjunto de datos. Ya está haciendo esto con el siguiente código en onMove():

    recyclerView.getAdapter().notifyItemMoved(fromPosition,toPosition);
    

    Esto debería actualizar la vista de reciclaje con las nuevas posiciones de los botones. Sin embargo, si todavía ve las posiciones antiguas, es posible que deba verificar si está actualizando correctamente la datalist que el adaptador utiliza para poblar la vista de reciclaje.

Comments are closed.