Bagaimana mengubah warna CircularProgressIndicator


126

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:


260

Ini berhasil untuk saya:

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

yang satu ini membantu untuk indikator kemajuan linier juga terima kasih banyak
Rajesh Jr.

Terima kasih! Sejak kapan AlwaysStoppedAnimation ada?
Rebar

Di Flutter 1.20.0.7.2.pre yang saya dapatkanThe argument type 'AlwaysStoppedAnimation<Color>' can't be assigned to the parameter type 'Animation<Color>'
Zane Campbell

71

Tiga cara untuk menyelesaikan masalah Anda

1) Menggunakan valueColorproperti

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

2) Setel accentColordi MaterialAppwidget utama Anda . Ini adalah cara terbaik karena Anda tidak ingin selalu menyetel warna saat Anda menggunakan CircularProgressIndicatorwidget

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

3) Menggunakan ThemeWidget

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

15

accentColordapat digunakan untuk warna latar depan Widget. Ini mengubah warna widget latar depan termasuk circularprogressbarAnda dapat menggunakan seperti ini:

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



2

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),
                    ),

2

Dalam main.dartmengatur tema accentColor, CircularProgressIndicatorakan menggunakan warna itu

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

Ini juga akan mempengaruhi warna sistem lainnya, yang jelas bukan yang diminta.
Alex Semeniuk

0

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)),
        ),
      ),
    );
  }
}

0

Gunakan seperti ini --->

CircularProgressIndicator (valueColor: AlwaysStoppedAnimation (Colors.grey [500]),)),

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.