Jak mogę zmienić kolor CircularProgressIndicator
?
Wartość koloru jest przykładem Animation<Color>
, ale mam nadzieję, że istnieje prostszy sposób na zmianę koloru bez kłopotów z animacją.
To zadziałało dla mnie:
valueColor: new AlwaysStoppedAnimation<Color>(Colors.blue),
The argument type 'AlwaysStoppedAnimation<Color>' can't be assigned to the parameter type 'Animation<Color>'
Trzy sposoby rozwiązania problemu
1) Korzystanie z
valueColor
własnościCircularProgressIndicator( valueColor: new AlwaysStoppedAnimation<Color>(Colors.blue), ),
2) Ustaw
accentColor
w głównymMaterialApp
widżecie. To najlepszy sposób, ponieważ nie chcesz ustawiać koloru przez cały czas, gdy używaszCircularProgressIndicator
widżetuMaterialApp( title: 'My App', home: MainPAge(), theme: ThemeData(accentColor: Colors.blue), ),
3) Korzystanie z
Theme
widżetuTheme( data: Theme.of(context).copyWith(accentColor: Colors.red), child: new CircularProgressIndicator(), )
źródło
accentColor
może być użyty do koloru pierwszego planu widżetów.Zmienia kolor wszystkich widżetów pierwszego planu, w tymcircularprogressbar
Możesz użyć w następujący sposób:void main() => runApp( MaterialApp( title: 'Demo App', home: MainClass(), theme: ThemeData(accentColor: Colors.black), ), );
źródło
Motyw to widżet, który można wstawić w dowolnym miejscu w drzewie widżetów. Zastępuje bieżący motyw niestandardowymi wartościami Spróbuj:
new Theme( data: Theme.of(context).copyWith(accentColor: Colors.yellow), child: new CircularProgressIndicator(), );
odniesienie: https://gitter.im/flutter/flutter?at=5a84cf9218f388e626a51c2d
źródło
Domyślnie dziedziczy accentColor z Themedata
void main() => runApp(new MaterialApp( theme: ThemeData( primaryColor: Colors.blue, accentColor: Colors.blueAccent, //This will be the color for CircularProgressIndicator color ), home: Homepage() ));
Możesz zmienić tę właściwość accentColor za pomocą nowego koloru. Innym sposobem jest użycie z predefiniowanymi danymi ThemeData, takimi jak ten
void main() => runApp(new MaterialApp( theme: ThemeData.light().copyWith( accentColor: Colors.blueAccent, //change the color for CircularProgressIndicator color here ), home: Homepage() ));
Lub możesz bezpośrednio zmienić tę właściwość koloru w CircularProgressIndicator, jak pokazano poniżej
źródło
W
main.dart
ustawionym hasłemaccentColor
TheCircularProgressIndicator
użyje tego koloruvoid main() => runApp(new MaterialApp( theme: ThemeData(primaryColor: Colors.red, **accentColor: Colors.yellowAccent**), debugShowCheckedModeBanner: false, home: SplashPage() ));
źródło
valueColor:new AlwaysStoppedAnimation<Color>(Colors.yellow),
źródło