Bagaimana cara mengubah warna CircularProgressIndicator
?
Nilai warna adalah contoh dari Animation<Color>
, tetapi saya berharap ada cara yang lebih sederhana untuk mengubah warna tanpa masalah animasi.
Jawaban:
Ini berhasil untuk saya:
valueColor: new AlwaysStoppedAnimation<Color>(Colors.blue),
The argument type 'AlwaysStoppedAnimation<Color>' can't be assigned to the parameter type 'Animation<Color>'
1) Menggunakan valueColor
properti
CircularProgressIndicator(
valueColor: new AlwaysStoppedAnimation<Color>(Colors.blue),
),
2) Setel accentColor
di MaterialApp
widget utama Anda .
Ini adalah cara terbaik karena Anda tidak ingin selalu menyetel warna saat Anda menggunakan CircularProgressIndicator
widget
MaterialApp(
title: 'My App',
home: MainPAge(),
theme: ThemeData(accentColor: Colors.blue),
),
3) Menggunakan Theme
Widget
Theme(
data: Theme.of(context).copyWith(accentColor: Colors.red),
child: new CircularProgressIndicator(),
)
accentColor
dapat digunakan untuk warna latar depan Widget. Ini mengubah warna widget latar depan termasuk circularprogressbar
Anda dapat menggunakan seperti ini:
void main() => runApp(
MaterialApp(
title: 'Demo App',
home: MainClass(),
theme: ThemeData(accentColor: Colors.black),
),
);
Tema adalah widget yang dapat Anda sisipkan di mana saja di pohon widget Anda. Ini mengganti tema saat ini dengan nilai-nilai khusus. Coba ini:
new Theme(
data: Theme.of(context).copyWith(accentColor: Colors.yellow),
child: new CircularProgressIndicator(),
);
referensi: https://gitter.im/flutter/flutter?at=5a84cf9218f388e626a51c2d
valueColor:new AlwaysStoppedAnimation<Color>(Colors.yellow),
Secara default, ini mewarisi accentColor dari Themedata
void main() => runApp(new MaterialApp(
theme: ThemeData(
primaryColor: Colors.blue,
accentColor: Colors.blueAccent,
//This will be the color for CircularProgressIndicator color
),
home: Homepage()
));
Anda dapat mengubah properti accentColor ini dengan warna baru Anda. Cara lain adalah menggunakan dengan ThemeData standar seperti ini
void main() => runApp(new MaterialApp(
theme: ThemeData.light().copyWith(
accentColor: Colors.blueAccent,
//change the color for CircularProgressIndicator color here
),
home: Homepage()
));
Atau Anda bisa langsung mengubah properti warna ini di CircularProgressIndicator seperti yang ditunjukkan di bawah ini
CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(Colors.red),
),
Dalam main.dart
mengatur tema accentColor
, CircularProgressIndicator
akan menggunakan warna itu
void main() => runApp(new MaterialApp(
theme: ThemeData(primaryColor: Colors.red, **accentColor: Colors.yellowAccent**),
debugShowCheckedModeBanner: false,
home: SplashPage()
));
untuk set warna sigle,
CircularProgressIndicator(
valueColor:AlwaysStoppedAnimation<Color>(Colors.red),
);
untuk perubahan / set multi warna.
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)),
),
),
);
}
}
Gunakan seperti ini --->
CircularProgressIndicator (valueColor: AlwaysStoppedAnimation (Colors.grey [500]),)),