正如标题所示:无法覆盖我的Button
可组合项的边框笔画。下面是我的自定义按钮、如何通过传递参数来调用可组合项border:BorderStroke
以及显示其外观的图像。
@Composable
fun CustomButtonPrimary(
onClick: () -> Unit,
shape: RoundedCornerShape? = null,
modifier: Modifier = Modifier,
color: Color? = null,
border: BorderStroke? = null,
enabled: Boolean = true,
content: @Composable RowScope.() -> Unit
){
Button(
onClick = onClick,
modifier = modifier.height(30.dp),
contentPadding = PaddingValues(top = 0.dp, bottom = 0.dp, start = 8.dp, end = 8.dp),
shape = shape ?: MaterialTheme.shapes.small,
enabled = enabled,
colors = ButtonColors(
containerColor = color ?: MaterialTheme.colorScheme.primary.copy(alpha = 0.8f),
contentColor = if(color != null) Color.LightGray.copy(alpha = 0.75f) else MaterialTheme.colorScheme.surfaceVariant,
disabledContainerColor = Color.DarkGray,
disabledContentColor = Color.White
),
border = border
) {
ProvideTextStyle(value = MaterialTheme.typography.titleSmall) {
content()
}
}
}
像这样调用可组合按钮:
CustomButtonPrimary(
onClick = { ... },
modifier = modifier
.widthIn(95.dp, 120.dp)
.height(20.dp),
color = if(account.availableFunds <= 0) Color.DarkGray else null,
border = BorderStroke(1.dp, Color.Red)
) {
Text(text = btnText)
}
不会覆盖原来的边界。如果你看下面的图片。我的 MaterialTheme 着色后面有一个 border = Color.Red...但我无法删除绿色而只显示红色。
我尝试将我的按钮包装在Surface(){}
应用边框样式中。
我也尝试过改变Button.modifier = modifier.border()
属性
正在纠结这个问题,有什么建议吗?