Como o título diz: Não é possível substituir o traço da borda do meu Button
elemento que pode ser composto. Abaixo está meu botão personalizado, como invoco o elemento que pode ser composto passando um border:BorderStroke
parâmetro e uma imagem mostrando sua aparência.
@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()
}
}
}
chamando o botão Composable assim:
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)
}
não ultrapassa a borda original. Se você olhar a imagem abaixo. Eu tenho uma borda = Color.Red ATRÁS da minha coloração MaterialTheme... mas não consigo remover a cor verde e apenas mostrar o vermelho.
Tentei envolver meu botão em um Surface(){}
estilo de borda aplicado.
Eu também tentei alterar a Button.modifier = modifier.border()
propriedade
Coçando a cabeça com isso, alguma sugestão?