web-dev-qa-db-fra.com

Comment puis-je changer la couleur d'une entrée de chaîne dans un TextField?

Je travaille dans les styles de mon application, je ne peux pas changer la couleur de l'entrée du TextField, il n'y a aucune propriété pour la changer.

 new Theme(
            data: new ThemeData(
              hintColor: Colors.white
            ),
            child:
        new TextField(
          focusNode: _focusUsername,
          controller: _controller,
          decoration: new InputDecoration(
            border: InputBorder.none,
            fillColor: Colors.grey,
            filled: true,

            hintText: 'Username',
          ))),
10

Vous pouvez attribuer un TextStyle

new TextField(
  style: new TextStyle(color: Colors.white),
  ...

https://docs.flutter.io/flutter/painting/TextStyle-class.html

14

Dans l'exemple ci-dessous, le texte est "rouge" et l'arrière-plan du TextField est "orange".

new TextField(
  style: new TextStyle(color: Colors.red),
  decoration: new InputDecoration(fillColor: Colors.orange, filled: true),
)

C'est ça que tu veux dire?

Si vous voulez le faire de manière générique via le thème de l'application, c'est en effet délicat. Ça va probablement être quelque chose comme ça:

theme: new ThemeData(
    textTheme: new TextTheme(
      body1: new TextStyle(color: Colors.black),
      body2: new TextStyle(color: Colors.black),
      button: new TextStyle(color: Colors.black),
      caption: new TextStyle(color: Colors.black),
      display1: new TextStyle(color: Colors.black),
      display2: new TextStyle(color: Colors.black),
      display3: new TextStyle(color: Colors.black),
      display4: new TextStyle(color: Colors.black),
      headline: new TextStyle(color: Colors.black),
      subhead: new TextStyle(color: Colors.red), // <-- that's the one
      title: new TextStyle(color: Colors.black),
    ),
    inputDecorationTheme: new InputDecorationTheme(
      fillColor: Colors.orange,
      filled: true,
    )
)
4
Feu