как сделать чтобы при mouseDown событии элемент Text менял цвет, а при mouseUp возвращался к стандартному? mouseUp/mouseDown из мира js (в Андроиде пока не знаю какие аналоги, но суть вы уловили).
Пока до вот такого довёл:
@Composable
private fun NumPadButton(key: NumberPadKey, onClick: (key: NumberPadKey) -> Unit) {
var color by remember {mutableStateOf(Colors.foreground)}
Text(
key.char.toString(),
color = color,
style = Typography.title2,
modifier = Modifier.clickable {
color = Color.Green
onClick(key)
}.pointerInput(Unit) {
detectTapGestures(
onTap = {
// change color here?
}
)
},
)
}
надеюсь есть способ решить без всяких detectTapGestures ....
Решил 🔥 через interactionSource, может кому пригодится: @Composable private fun NumPadButton(key: NumberPadKey, onClick: (key: NumberPadKey) -> Unit) { val interactionSource = remember { MutableInteractionSource() } val isPressed by interactionSource.collectIsPressedAsState() Text( key.char.toString(), color = if (isPressed) Color.Red else Color.Green, style = Typography.title2, modifier = Modifier .clickable( onClick = { onClick(key) }, indication = null, interactionSource = interactionSource ) ) }
Обсуждают сегодня