Android - Cardview desplegable se abren dos cards

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 208 puestos en Android (en relación al último mes)
Gráfica de Android

Cardview desplegable se abren dos cards

Publicado por Arkaitz (3 intervenciones) el 19/03/2020 22:05:17
Buenas, me he topado con un problema que me está trayendo de cabeza...

Resulta que tenco un recyclerView con cardViews desplegables, unas 40 cardviews.
Cuando se pulsa en una, se despliega, y enseña un textview con una descripción.

La cosa es que cuando pulso en el primer cardciew despliega un linearLayout que tiene dentro (pongamos que se identifica como LinearLayout@1234), pero tambien despliega al LinearLayout de la card 11, de la card 21,, etc...
Me he fijado, y TODOS esos se identifican como LinearLayout@1234.

El layout de la cardview 2 se identifica como LinearLayout@5678, y este es igual que el de la 12, 22, 32... etc. por lo que se abren y cierran todas a la vez.

No sé si me he explicado, espero que sí.

¿Le ha pasado a alguen esto? Agradecería ayuda.

Grácias,
Arkaitz
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 3
Ha aumentado su posición en 208 puestos en Android (en relación al último mes)
Gráfica de Android

Cardview desplegable se abren dos cards

Publicado por Arkaitz (3 intervenciones) el 20/03/2020 20:02:38
Extiendo la información.

Me he dado cuenta que en otro dispositivo, en el que por el tamaño aparacen a primera vista mas elementos del recyclerview. Los objetos "conectados" son otros: el 1 con el 14, el 2 con el 15....

Es decir. a simple vista aparecen X objetos, y puedes desplazar para abajo la lista. cuando haces click en uno, de despliega éste y otros cuantos que tienen el mismo identificador (LinearLayout@1234).

Parece que el sistema crea el objeto, le asigna un identificador, y al mover la lista, es como si destruiría ese objeto y crease otro con el mismo identificador. Al clicar en uno de ellos, se despliegan unos cuantos, que no aparecen en la misma pantalla, pero sí que aparecen desplegados cuando te desplazas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 208 puestos en Android (en relación al último mes)
Gráfica de Android

Cardview desplegable se abren dos cards

Publicado por Arkaitz (3 intervenciones) el 23/03/2020 13:59:04
Bueno, he investigado un poco, y ya que no hay respuesta aquí, comento lo que he encontrado.

El recyclerview, por defecto, destruye el objeto cuando no está en pantalla, y los reutiliza (De ahí lo de recycler). Al reutilizarlo, se crea otro objeto con la misma ID y características (abierto/cerrado, tamaño...). Así pues, no he encontrado la solución usando recyclerView + cardview.

He cambiado todo el código para usar ListViews "tuneadas" para que tengan el mismo comportamiento y aspecto que las cardviews que tenía en la otra solución, y arreglado. Ahora cada elemento tiene su propio ID, y no interaccionan unos con otros.

Decir que esto va bastante bien para el número de elementos que uso yo, pero me da que para listas más grandes ralentizará la ejecución y necesitará bastante memoria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar