【发布时间】:2022-01-01 12:31:07
【问题描述】:
在我的 Compose 应用中,我需要创建一个圆形复选框。我已经通过下面的代码实现了这一点:
@Composable
fun CircleCheckBox(
isChecked: Boolean,
modifier: Modifier = Modifier,
onChecked: () -> Unit = {},
checkedBackgroundColor: Color,
unCheckedBackgroundColor: Color,
checkedIconColor: Color,
unCheckedIconColor: Color
) {
Box(
modifier = modifier
.clip(CircleShape)
.clickable { onChecked() }
.border(
width = if (!isChecked) 1.dp else 0.dp,
color = if (!isChecked) checkedBackgroundColor else Color.Transparent,
shape = CircleShape
)
.background(
color = if (isChecked) checkedBackgroundColor else unCheckedBackgroundColor,
shape = CircleShape
),
contentAlignment = Alignment.Center
) {
Icon(
imageVector = Icons.Default.Check,
contentDescription = stringResource(R.string.icon_check),
modifier = Modifier.padding(3.dp),
tint = if (isChecked) checkedIconColor else unCheckedIconColor
)
}
}
但在我的应用程序中,我在卡片上有渐变背景,所以我想让复选标记透明,但在这个实现中,由于 Box 的背景,这是不可能的。有没有办法实现它,如下图所示?
【问题讨论】:
标签: android kotlin checkbox android-jetpack-compose