Tengo dos íconos para el botón "Me gusta": ic_thumb_up y ic_thumb_up_selected
El tipo de icono debe depender del parámetro offer.likedByUser .
var thumbIcon by remember { mutableStateOf(if (offer.likedByUser) R.drawable.ic_thumb_up_selected else R.drawable.ic_thumb_up) } IconButton( onClick = { offer.likedByUser = !offer.likedByUser } ) { Image(painter = painterResource(id = thumbIcon) ) }¿Por qué no funciona?
este codigo
var thumbIcon by remember { mutableStateOf(if (offer.likedByUser) R.drawable.ic_thumb_up_selected else R.drawable.ic_thumb_up) } se ejecuta solo una vez y establece el valor en thumbs_up_selected o thumbs_up . No está cambiando mutableStateOf en su controlador onClick , por lo que no sucede nada.
Tienes que cambiarlo así
var thumbIconLiked by remember { mutableStateOf(offer.likedByUser) } IconButton( onClick = { thumbIconLiked = !thumbIconLiked } ) { Image( painter = painterResource( id = if (thumbIconLIked) { R.drawable.ic_thumb_up_selected } else { R.drawable.ic_thumb_up } ) ) }