Як я можу змінити колір 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
За замовчуванням він успадковує 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, як показано нижче
CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(Colors.red),
),
У main.dart
наборі теми accentColor
, то CircularProgressIndicator
буде використовувати цей колір
void main() => runApp(new MaterialApp(
theme: ThemeData(primaryColor: Colors.red, **accentColor: Colors.yellowAccent**),
debugShowCheckedModeBanner: false,
home: SplashPage()
));
valueColor: new AlwaysStoppedAnimation (Colors.yellow),