106 votes

Flutter - Comment changer la couleur de l'indication d'un champ de texte ?

Je ne sais pas trop comment changer la couleur de l'indication du champ de texte. Si quelqu'un peut me guider, merci.

child: TextField(
   style: TextStyle(fontSize: 20),
   decoration: InputDecoration(
                  hintText: "Password",
                  border: new OutlineInputBorder(
                            borderSide: new BorderSide(
                              color: Colors.teal,
                            ),
                          ),
                   prefixIcon: const Icon(
                            Icons.security,
                            color: Colors.white,
                          ),
                ),
   ),

200voto

anmol.majhail Points 11892

Vous pouvez faire avec hintStyle : dans InputDecoration

TextField(
        style: TextStyle(fontSize: 20),
        decoration: InputDecoration(
          hintText: "Password",
          hintStyle: TextStyle(fontSize: 20.0, color: Colors.redAccent),
          border: OutlineInputBorder(
            borderSide: BorderSide(
              color: Colors.teal,
            ),
          ),
          prefixIcon: const Icon(
            Icons.security,
            color: Colors.white,
          ),
        ),
      ),

7 votes

Qu'en est-il lorsque l'entrée est mise au point ? Changer la couleur du texte des indices en une couleur différente ?

0 votes

@VincentJ.Michuki Voir ma réponse ci-dessous.

20voto

Andrei Points 537

En complément de la réponse acceptée, pour mettre à jour la décoration de l'indice ciblé, vous devez mettre à jour le thème de l'application. enter image description here

@override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
          primaryColor: Colors.white,
          inputDecorationTheme: const InputDecorationTheme(
            labelStyle: TextStyle(color: Colors.black),
            hintStyle: TextStyle(color: Colors.grey),
          )),
      home: MainScreen(),
    );
  }

5 votes

Une autre façon de procéder est d'utiliser un nœud de focus comme suit hintStyle: TextStyle(color: focusNode.hasFocus ? Color(0xff7FBBCA) : Colors.black45)

13voto

saigopi Points 2873

Changer à la fois hintStyle et labelStyle

TextFormField(
              decoration: InputDecoration(
                hintText: 'username@mail.com',
                labelText: 'Email',
               hintStyle: TextStyle(color: Colors.white), # change to your color
                labelStyle: TextStyle(color: Colors.white), # change color
             ))

1voto

Yaobin Then Points 1039

Après avoir creusé le code source de l'InputDecorator utilisé pour déterminer la couleur de l'étiquette, voici ce que j'ai trouvé.

TextStyle _getFloatingLabelStyle(ThemeData themeData) {
  final Color color = decoration.errorText != null
    ? decoration.errorStyle?.color ?? themeData.errorColor
    : _getActiveColor(themeData);
  final TextStyle style = themeData.textTheme.subtitle1.merge(widget.baseStyle);
  return style
    .copyWith(color: decoration.enabled ? color : themeData.disabledColor)
    .merge(decoration.labelStyle);
}

Color _getActiveColor(ThemeData themeData) {
  if (isFocused) {
    switch (themeData.brightness) {
      case Brightness.dark:
        return themeData.accentColor;
      case Brightness.light:
        return themeData.primaryColor;
    }
  }
  return themeData.hintColor;
}

En résumé, pour modifier la couleur de l'indication, définissez hintColor à l'aide de Theme et de ThemeData.

Autre astuce : pour modifier la couleur de l'étiquette, définissez la primaryColor pour le thème clair, ou l'accentColor pour le thème foncé.

ThemeData.dark().copyWith(
  primaryColor: Colors.red,
  accentColor: Colors.white,
  hintColor: Colors.pink,
)

0voto

Kalpesh Khandla Points 51
TextField(
   decoration: InputDecoration(
   hintText: 'your hint',
   hintStyle: Theme.of(context).textTheme.caption.copyWith(
   fontSize: 20,
   fontWeight: FontWeight.w600,
   color: ColorConstants.kTextColor,  <--- // Set Your Own Color
   ),

0 votes

Vous pouvez également consulter cette page pour d'autres exemples. medium.com/flutter-community/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X