oday
10/21/2022, 12:11 PM@Composable
fun Chip(
label: String,
enabled: MutableState<Boolean>,
onClick: () -> Unit,
) {
val (selected, setSelected) = enabled
val chipColor =
if (selected) MaterialTheme.colors.Action else MaterialTheme.colors.ForegroundMuted
Surface(
shape = RoundedCornerShape(15.dp),
color = chipColor.copy(alpha = 0.2f),
border = BorderStroke(
width = 1.dp, color = chipColor
),
modifier = Modifier
.toggleable(
value = selected,
enabled = true,
onValueChange = setSelected
)
.clickable {
onClick()
},
but this would
modifier = Modifier
.clickable {
onClick()
setSelected(!selected)
},
Thanksoday
10/21/2022, 12:12 PMRick Regan
10/21/2022, 1:29 PMtoggleable
or clickable
) takes precedence.mattinger
10/21/2022, 3:50 PModay
10/21/2022, 3:53 PMmattinger
10/21/2022, 4:03 PM@Composable
fun Chip(
label: String,
enabled: Boolean,
selected: Boolean,
setSelected (Boolean) -> Unit
)
I generally try to avoid any remember state in my controls unless it’s 100% necessary. Also, i would avoid passing MutableState instances to controls as well (i don’t even see where you’re using that anyway). It causes issues with recomposition when you do that. You should always pass a value and value setter instead.mattinger
10/21/2022, 4:04 PM