Bri*_*ner 7 android android-jetpack-compose
我正在使用clickable修改器Surface并希望创建一个自定义指示,以使表面(及其内容)在按下时显示 0.5 alpha。但似乎该指示只能用于绘制额外的 UI。
Surface按下时如何以 0.5 alpha 重新绘制?
Surface(
modifier = Modifier.clickable(interactionSource = remember { MutableInteractionSource() }, indication = CustomIndication, onClick = onClick)
) {
...
}
Run Code Online (Sandbox Code Playgroud)
Indication您可以在修饰符中指定参数clickable。rememberRipple您可以使用通过更改颜色定义的默认波纹。
就像是:
var interactionSource = remember { MutableInteractionSource() }
//clickable modifier
val clickable = Modifier.clickable(
interactionSource = interactionSource,
indication = rememberRipple(color = /* use you custom color */
MaterialTheme.colors.primary.copy(alpha = 0.5f))
) { /* update some business state here */ }
Surface(modifier = clickable){
//...
}
Run Code Online (Sandbox Code Playgroud)
否则你可以使用类似的东西:
val interactionSource = remember { MutableInteractionSource() }
val isPressed by interactionSource.collectIsPressedAsState()
val backgroundAlpha = if (isPressed) 0.5f else 1f
Surface(
modifier = Modifier.clickable(true){},
color= MaterialTheme.colors.secondary.copy(alpha = backgroundAlpha)
) {
//....
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1994 次 |
| 最近记录: |