[英]Button doesn't have ripple effect on clicking (Jetpack Compose)
AFAIK,默认情况下,使用 Jetpack compose 创建的按钮应该在点击时产生连锁反应。 但是我的按钮在点击时没有显示连锁反应。 下面是我的按钮的代码:
BoxWithConstraints(modifier = Modifier
.constrainAs(button) {
top.linkTo(glTopButtonProceed)
start.linkTo(glLeftBtn)
end.linkTo(glRightBtn)
width = Dimension.fillToConstraints
}) {
Button(
onClick = {
navController.navigate("autosave_screen")
},
modifier = Modifier
.fillMaxWidth()
.height(if (screenHeight>=700.dp)
50.dp
else
with(LocalDensity.current) {dimensionResource(id = R.dimen._35sdp)}) ,
colors = if (text.text != "" && text.text.length == 4)
ButtonDefaults.buttonColors(backgroundColor = colorResource(id = R.color.bright_green))
else
ButtonDefaults.buttonColors(backgroundColor = colorResource(id = R.color.gray))
) {
Text(
"Proceed", color = colorResource(id = R.color.dark_blue),
fontSize =
if (screenHeight>=700.dp)
19.sp
else
with(LocalDensity.current) {dimensionResource(id = R.dimen._12sdp).toSp()},
fontFamily = FontFamily(Font(R.font.poppins_medium)),
textAlign = TextAlign.Center,
modifier = Modifier.align(Alignment.CenterVertically)
)
}
}
}
如何为我的按钮启用涟漪效果?
您可以尝试使用 click on Modifier click 而不是在 Button 上调用 onClick
modifier = Modifier .clickable(
interactionSource = remember { MutableInteractionSource() },
indication = rememberRipple(bounded = false),
onClick = {}
)
您也可以自定义按钮波纹。
用 Material Theme 包装你的 Box 以获得漂亮的涟漪效果
如果您想将特定的 colors 赋予您的按钮,请尝试在Text
可组合项上使用Modifier.fillMaxSize().background(...)
代替。 不要使用Button
的colors
参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.