Why does this not recompose, despite state changing.
@Composable
fun IngredientsScreen() {
var numberOfIngredients by remember {mutableStateOf(1)}
Box(
){
Column(
verticalArrangement = Arrangement.Top,
horizontalAlignment = Alignment.Start,
modifier = Modifier
.verticalScroll(rememberScrollState())
){
for (i in 0 until numberOfIngredients){
IngredientInputBox(
onClick = {
numberOfIngredients++
}
)
}
}
}
}
IngredientInputBox() is just a composable that contains a text field and a "+" symbol that is clickable, ideally when the symbol is pressed, a new text field would appear beneath it
@Composable
fun IngredientInputBox(
onClick: () -> Unit,
modifier: Modifier = Modifier
) {
var text by remember { mutableStateOf("") }
Row(
modifier = Modifier
.padding(16.dp)
){
TextField(
value = text,
onValueChange = { newText ->
text = newText
},
label = {Text(text = stringResource(R.string.addNewIngredient))},
modifier = Modifier
.fillMaxWidth(0.3F)
.weight(1f)
)
Text(
text = "+",
modifier = Modifier
.clickable {onClick}
)
}
}
IngredientInputBox()
. Can you post that code? By the way, for simpler code, you can replacefor (i in 0 until numberOfIngredients)
withrepeat(numberOfIngredients)
.IngredientInputBox
is just aText
with a clickable event handler. Can provide the implementation ofIngredientInputBox
?