'How to change the outline color of OutlinedTextField from jetpack compose?
Here is how OutlinedTextField code looks like in jetpack-compose:
OutlinedTextField(
value = "",
onValueChange = {},
label = {Text("Input")}
)
The default color of the outline of this TextField is purple. I want to change the outline color along with the label obviously.
Solution 1:[1]
The default values used by the OutlinedTextField
are defined in the TextFieldDefaults.outlinedTextFieldColors
:
focusedBorderColor: Color = MaterialTheme.colors.primary.copy(alpha = ContentAlpha.high),
unfocusedBorderColor: Color = MaterialTheme.colors.onSurface.copy(alpha = ContentAlpha.disabled),
You can change the colors.primary
and the colors.onSurface
in your theme.
Otherwise you can use something like:
OutlinedTextField(
value = "",
onValueChange = {},
label = {Text("Input")},
colors = TextFieldDefaults.outlinedTextFieldColors(
focusedBorderColor = Green,
unfocusedBorderColor = Yellow)
)
Solution 2:[2]
@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)
}
Colors.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
)
Solution 3:[3]
for 1.0.0 beta-1
OutlinedTextField(
value = "",
onValueChange = {},
label = {Text("Input")},
color = TextFieldDefaults.outlinedTextFieldColors(
focusedBorderColor: Color = MaterialTheme.colors.primary.copy(alpha =
ContentAlpha.high),
unfocusedBorderColor: Color = MaterialTheme.colors.onSurface.copy(alpha =
ContentAlpha.disabled),
disabledBorderColor: Color = unfocusedBorderColor.copy(alpha =
ContentAlpha.disabled),
errorBorderColor: Color = MaterialTheme.colors.error,
)
)
Set border colors depends on the situation using above parameter.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 | AlexPes |
Solution 3 | ming chen |