En la actualidad, estoy haciendo la transición de mi aplicación a Jetpack, y estoy enfrentando algunos problemas para adaptar mi paleta de colores actual en algunos casos.
Tengo algunos TextInputLayout
en mis archivos xml que heredan el color del texto resaltado del color SECUNDARIO en mi tema.
<style name="Theme.MyApp" parent="Theme.MaterialComponents.Light.NoActionBar">
...
<item name="colorPrimary">@color/blue</item>
<item name="colorPrimaryVariant">@color/blue</item>
<item name="colorSecondary">@color/red</item>
<item name="colorSecondaryVariant">@color/red</item>
...
</style>
El problema es que my TextField
on compose hereda el color del texto resaltado del color PRIMARY on MaterialTheme
.
MaterialTheme(
colors = Colors(
primary = Color.Blue,
...
secondary = Color.Red,
...
),
content = content,
typography = MaterialTheme.typography,
shapes = MaterialTheme.shapes,
) {
TextField(...)
}
Anulé el colors
parámetro TextField
pero ninguno parece afectar este color.
Habría una manera de anular el color de resaltado de componer sin cambiar el colors
sobre MaterialTheme
? Me gustaría evitar eso, ya que podría causar problemas en otras pantallas que usarían el mismo tema.
Los colores utilizados para la selección de texto por texto y componentes de campo de texto son proporcionados por LocalTextSelectionColors.current
.
Puede proporcionar un TextSelectionColors
uso personalizado :
val customTextSelectionColors = TextSelectionColors(
handleColor = Red,
backgroundColor = Red.copy(alpha = 0.4f)
)
CompositionLocalProvider(LocalTextSelectionColors provides customTextSelectionColors) {
TextField(
value = text,
onValueChange = { text = it },
colors = TextFieldDefaults.textFieldColors(cursorColor = Red)
)
}
Si desea cambiar también el color del cursor, agregue colors = TextFieldDefaults.textFieldColors(cursorColor = Red)
.
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras