问题描述
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)
)
}
}
}
如何为我的按钮启用波纹效果?
解决方法
您可以尝试使用点击修饰符点击而不是在按钮上调用 onClick
function getLevel($allLevels,$numberOfDailyLogins) {
for ($i = count($allLevels) -1; $i >= 0; $i--) {
if ($numberOfDailyLogins > $allLevels[$i]['after_days']) {
return $allLevels[$i]['name'];
}
}
}
您也可以自定义按钮波纹。
,用 Material Theme 包裹你的盒子以获得漂亮的涟漪效果