如何从 jetpack compose 更改 OutlinedTextField 的轮廓颜色?

Art*_*een 4 android android-theme android-textinputlayout material-ui android-jetpack-compose

下面是在 jetpack-compose 中 OutlinedTextField 代码的样子:

OutlinedTextField(
    value = "",
    onValueChange = {},
    label = {Text("Input")}
)
Run Code Online (Sandbox Code Playgroud)

此 TextField 轮廓的默认颜色为紫色。我想明显地改变轮廓颜色和标签。

Gab*_*tti 16

使用的1.0.0默认值OutlinedTextField是:

focusedBorderColor: Color = MaterialTheme.colors.primary.copy(alpha = ContentAlpha.high),
unfocusedBorderColor: Color = MaterialTheme.colors.onSurface.copy(alpha = ContentAlpha.disabled),
Run Code Online (Sandbox Code Playgroud)

您可以更改主题中的colors.primarycolors.onSurface

否则你可以使用类似的东西:

    OutlinedTextField(
        value = "",
        onValueChange = {},
        label = {Text("Input")},
        colors = TextFieldDefaults.outlinedTextFieldColors(
            focusedBorderColor = Green,
            unfocusedBorderColor = Yellow)
    )
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 我们可以使用focusedLabelColor和unfocusedLabelColor来改变标签的颜色。顺便说一句,感谢您向我展示了更多定制可能性的途径。 (3认同)

Ale*_*Pes 12

@Preview
@Composable
fun TelephoneEditText() {
    val textValue = remember {
        mutableStateOf("")
    }

    OutlinedTextField(
        label = {
            Text(
                text = stringResource(
                    id = R.string.phoneNumber
                ),
                style = TextStyle(
                    color = MaterialTheme.colors.primaryVariant,
                )
            )
        },
        placeholder = {
            Text(
                text = stringResource(id = R.string.phone_placeholder),
                style = TextStyle(
                    color = MaterialTheme.colors.primaryVariant,
                    textAlign = TextAlign.Center
                )
            )
        },
        colors = TextFieldDefaults.outlinedTextFieldColors(
            focusedBorderColor = MaterialTheme.colors.secondary,
            unfocusedBorderColor = MaterialTheme.colors.secondary,
            focusedLabelColor = MaterialTheme.colors.secondary,
            cursorColor = MaterialTheme.colors.primaryVariant
        ),
        keyboardOptions = KeyboardOptions.Default.copy(keyboardType = KeyboardType.Number),
        value = textValue.value,
        onValueChange = { textValue.value = it },
    )
    WhatsAppButton(textValue)
}
Run Code Online (Sandbox Code Playgroud)

颜色.kt

val Yellow500 = Color(0XFFFFDE03)
val Blue700 = Color(0xFF0036FF)
val Pink500 = Color(0xFFf50057)
val Pink700 = Color(0xFFff5983)

val LightColors = lightColors(
    primary = Yellow500,
    primaryVariant = Blue700,
    secondary = Pink500,
    secondaryVariant = Pink700
)

val DarkColors = darkColors(
    primary = Yellow500,
    primaryVariant = Blue700,
    secondary = Pink700
)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述