Comment changer la couleur de CircularProgressIndicator


109

Comment puis-je changer la couleur de CircularProgressIndicator?

La valeur de la couleur est une instance de Animation<Color>, mais j'espère qu'il existe un moyen plus simple de changer la couleur sans problème de l'animation.

Réponses:


227

Cela a fonctionné pour moi:

valueColor: new AlwaysStoppedAnimation<Color>(Colors.blue),

celui-ci a également aidé à l'indicateur de progression linéaire merci beaucoup
Rajesh Jr.

THX! Depuis quand AlwaysStoppedAnimation existe?
Rebar

Dans Flutter 1.20.0.7.2.pre je reçoisThe argument type 'AlwaysStoppedAnimation<Color>' can't be assigned to the parameter type 'Animation<Color>'
Zane Campbell le

54

Trois façons de résoudre votre problème

1) Utilisation de la valueColorpropriété

CircularProgressIndicator(
     valueColor: new AlwaysStoppedAnimation<Color>(Colors.blue),
),

2) Définissez accentColordans votre MaterialAppwidget principal . C'est le meilleur moyen car vous ne voulez pas définir la couleur tout le temps lorsque vous utilisez le CircularProgressIndicatorwidget

MaterialApp(
        title: 'My App',
        home: MainPAge(),
        theme: ThemeData(accentColor: Colors.blue),
),

3) Utilisation du Themewidget

Theme(
      data: Theme.of(context).copyWith(accentColor: Colors.red),
      child: new CircularProgressIndicator(),
)

15

accentColorpeut être utilisé pour la couleur de premier plan des widgets.Il change la couleur de tous les widgets de premier plan, y compris circularprogressbarVous pouvez utiliser comme ceci:

void main() => runApp(
  MaterialApp(
    title: 'Demo App',
    home: MainClass(),
    theme: ThemeData(accentColor: Colors.black),
  ),
);


2

Par défaut, il hérite accentColor de Themedata

  void main() => runApp(new MaterialApp(
  theme: ThemeData(
                 primaryColor: Colors.blue,
                 accentColor:  Colors.blueAccent,
                 //This will be the color for CircularProgressIndicator color
               ),
  home: Homepage()
    ));

Vous pouvez modifier cette propriété accentColor avec votre nouvelle couleur. Une autre façon est d'utiliser avec ThemeData prédéfini comme celui-ci

void main() => runApp(new MaterialApp(
  theme: ThemeData.light().copyWith(
                 accentColor:  Colors.blueAccent,
                 //change the color for CircularProgressIndicator color here
               ),
  home: Homepage()
    ));

Ou bien vous pouvez modifier directement cette propriété de couleur dans CircularProgressIndicator comme indiqué ci-dessous

CircularProgressIndicator(
         valueColor: AlwaysStoppedAnimation<Color>(Colors.red),
                    ),

2

En main.dartdéfinissant le thème accentColor, le CircularProgressIndicatorutilisera cette couleur

void main() => runApp(new MaterialApp(
  theme: ThemeData(primaryColor: Colors.red, **accentColor:  Colors.yellowAccent**),
  debugShowCheckedModeBanner: false,
  home: SplashPage()
));

Cela affectera également les autres couleurs du système, ce qui n'est évidemment pas ce qui a été demandé.
Alex Semeniuk

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.