I am increasing a value and I want to change color of text on that bases. When my value change my text color is not changing.
PairStateFul
@Composable
fun PairStateFul() {
var selectedIndexOfAvailableItem by remember { mutableStateOf(-1) }
val pairButtonColor = remember {
if (selectedIndexOfAvailableItem != -1) {
Color.Blue
} else {
Color.Yellow
}
}
Column {
PairStateLess(
pairButtonColor,
selectedIndexOfAvailableItem,
onSelectedIndexOfAvailableItem = { selectedIndexOfAvailableItem += it }
)
}
}
PairStateLess
@Composable
fun PairStateLess(pairButtonColor: Color,
selectedIndexOfAvailableItem: Int,
onSelectedIndexOfAvailableItem: (Int) -> Unit,
) {
Text(
"Hello World!",
color = pairButtonColor
)
Button(onClick = {
onSelectedIndexOfAvailableItem(selectedIndexOfAvailableItem)
}) {
Text(text = "item $selectedIndexOfAvailableItem")
}
}
PairStateFulPreview
@Preview(showBackground = true)
@Composable
fun PairStateFulPreview() {
PairStateFul()
}
I know my increase counter logic is wrong. I don't want to solve logic. My main problem is when selectedIndexOfAvailableItem
change then my pairButtonColor
will also change.