gpt4 book ai didi

android - 在 Jetpack Compose 中为自定义手势添加波纹效果

转载 作者:行者123 更新时间:2023-12-04 23:46:48 26 4
gpt4 key购买 nike

我尝试在 Jetpack Compose 中创建一个可点击的表面,当用户点击该表面时,海拔会发生变化。以下代码已经有效:

var tapped by remember { mutableStateOf(false) }
val elevation by animateDpAsState(
targetValue = if (tapped) 0.dp else 5.dp,
animationSpec = tween(50)
)

Surface(
shape = RoundedCornerShape(20.dp),
modifier = Modifier
.padding(16.dp)
.requiredSize(150.dp)
.pointerInput(Unit) {
detectTapGestures(onPress = {
tapped = true

tryAwaitRelease()

tapped = false
})
},
elevation = elevation
) {
...
}
但是我想在点击期间产生链式 react 。我怎么能做到这一点?
默认按钮/表面 onClickclickable不适合,因为它只处理按下输入但没有点击。

最佳答案

您使用 Modifier.indication 添加涟漪效果,并使用 interactionSource 传递事件像这样更新它:

var tapped by remember { mutableStateOf(false) }
val interactionSource = remember { MutableInteractionSource() }

Surface(
modifier = Modifier
.indication(interactionSource, LocalIndication.current)
.pointerInput(Unit) {
detectTapGestures(onPress = { offset ->
tapped = true

val press = PressInteraction.Press(offset)
interactionSource.emit(press)

tryAwaitRelease()

interactionSource.emit(PressInteraction.Release(press))

tapped = false
})
}
) {
}

关于android - 在 Jetpack Compose 中为自定义手势添加波纹效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69753693/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com