Themes: ThemeData
Penjelasan
ThemeData didefinisikan sekali di parameter theme MaterialApp, berlaku KONSISTEN ke seluruh widget di bawahnya (warna, font, gaya tombol default, dst) — mengubah warna aksen aplikasi cukup di SATU tempat, tidak perlu mengubah tiap widget satu-satu. darkTheme dan themeMode dipakai untuk dukungan dark mode.
Contoh Konsep
MaterialApp(
theme: ThemeData(
primarySwatch: Colors.blue,
fontFamily: 'Roboto',
),
darkTheme: ThemeData.dark(),
themeMode: ThemeMode.system, // ikuti setelan sistem otomatis
home: const Scaffold(
body: Center(child: Text('Halo!')),
),
)
Praktikum
Buat MaterialApp dengan theme primarySwatch Colors.green, darkTheme ThemeData.dark(), dan themeMode ThemeMode.system.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Widget bawaan Flutter (Text, ElevatedButton, AppBar, dst) OTOMATIS mengikuti ThemeData yang berlaku, TANPA kamu perlu mengatur warna manual satu-satu di tiap widget — kalau butuh warna spesifik yang beda dari tema, itu pengecualian yang sengaja ditulis eksplisit, bukan kebiasaan default.