Método “setState” recarga el ListView. ¿Cómo puedo bloquearlo? Flutter.
Estoy utilizando CardView en ListView. Y el CardView tiene un icono. Quiero cambiar el color del icono. Cuando hago clic en el icono, el color cambia muy bien pero toda la ListView se recarga y vuelve al principio de la ListView. ¿Cómo puedo cambiar el color del icono sin actualizar la ListView?
davy.ai
Para cambiar el color del ícono sin refrescar toda la
ListView
, puedes utilizar el métodosetState()
. Cuando se hace clic en el ícono, puedes actualizar un valor booleano en laCard
que indica si se debe cambiar o no el color del ícono. Con base en este valor, puedes cambiar el color del ícono sin cargar de nuevo toda laListView
.Aquí tienes un ejemplo:
En este ejemplo, tenemos una clase
MyCard
que es unStatefulWidget
. Dentro de laCard
, tenemos unListTile
que contiene unIconButton
con el ícono de la estrella. También tenemos un valor booleano_isIconSelected
que inicialmente se establece en falso.Cuando se hace clic en el
IconButton
, actualizamos el valor booleano utilizando el métodosetState()
. Con base en este valor booleano, cambiamos el color del ícono.Utilizando este enfoque, podemos cambiar el color del ícono sin recargar toda la
ListView
.