Как я могу изменить цвет CircularProgressIndicator
?
Значение цвета является экземпляром Animation<Color>
, но я надеюсь, что есть более простой способ изменить цвет без проблем с анимацией.
Это сработало для меня:
valueColor: new AlwaysStoppedAnimation<Color>(Colors.blue),
The argument type 'AlwaysStoppedAnimation<Color>' can't be assigned to the parameter type 'Animation<Color>'
Три способа решить вашу проблему
1) Использование
valueColor
свойстваCircularProgressIndicator( valueColor: new AlwaysStoppedAnimation<Color>(Colors.blue), ),
2) Установите
accentColor
в своем основномMaterialApp
виджете. Это лучший способ, потому что вы не хотите постоянно устанавливать цвет при использованииCircularProgressIndicator
виджета.MaterialApp( title: 'My App', home: MainPAge(), theme: ThemeData(accentColor: Colors.blue), ),
3) Использование
Theme
виджетаTheme( data: Theme.of(context).copyWith(accentColor: Colors.red), child: new CircularProgressIndicator(), )
источник
accentColor
может использоваться для цвета переднего плана виджетов. Он изменяет цвет любых виджетов переднего плана, включаяcircularprogressbar
Вы можете использовать это так:void main() => runApp( MaterialApp( title: 'Demo App', home: MainClass(), theme: ThemeData(accentColor: Colors.black), ), );
источник
Тема - это виджет, который можно вставить в любое место дерева виджетов. Он заменяет текущую тему пользовательскими значениями. Попробуйте следующее:
new Theme( data: Theme.of(context).copyWith(accentColor: Colors.yellow), child: new CircularProgressIndicator(), );
ссылка: https://gitter.im/flutter/flutter?at=5a84cf9218f388e626a51c2d
источник
valueColor:new AlwaysStoppedAnimation<Color>(Colors.yellow),
источник
По умолчанию он наследует accentColor от Themedata.
void main() => runApp(new MaterialApp( theme: ThemeData( primaryColor: Colors.blue, accentColor: Colors.blueAccent, //This will be the color for CircularProgressIndicator color ), home: Homepage() ));
Вы можете изменить это свойство accentColor новым цветом. Другой способ - использовать с предопределенными ThemeData, подобными этому
void main() => runApp(new MaterialApp( theme: ThemeData.light().copyWith( accentColor: Colors.blueAccent, //change the color for CircularProgressIndicator color here ), home: Homepage() ));
Или вы можете напрямую изменить это свойство цвета в CircularProgressIndicator, как показано ниже.
источник
В
main.dart
наборе темыaccentColor
, тоCircularProgressIndicator
будет использовать этот цветvoid main() => runApp(new MaterialApp( theme: ThemeData(primaryColor: Colors.red, **accentColor: Colors.yellowAccent**), debugShowCheckedModeBanner: false, home: SplashPage() ));
источник
для набора цветов sigle,
для смены / набора нескольких цветов.
class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin { AnimationController animationController; @override void dispose() { // TODO: implement dispose super.dispose(); animationController.dispose(); } @override void initState() { super.initState(); animationController = AnimationController(duration: new Duration(seconds: 2), vsync: this); animationController.repeat(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Color Change CircularProgressIndicator"), ), body: Center( child: CircularProgressIndicator( valueColor: animationController .drive(ColorTween(begin: Colors.brown, end: Colors.red)), ), ), ); } }
источник
Используйте как это --->
CircularProgressIndicator (valueColor: AlwaysStoppedAnimation (Colors.grey [500]),)),
источник