Theming: MaterialTheme
Penjelasan
MaterialTheme membungkus SELURUH aplikasi (atau bagian tertentu), menyediakan warna (colorScheme), tipografi (typography), dan bentuk (shapes) yang KONSISTEN ke semua Composable Material di bawahnya — mengubah warna aksen aplikasi cukup di SATU tempat, mirip ThemeData Flutter.
Contoh Konsep
@Composable
fun AplikasiTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) {
val colorScheme = if (darkTheme) darkColorScheme() else lightColorScheme(
primary = Color(0xFF6200EE)
)
MaterialTheme(
colorScheme = colorScheme,
content = content
)
}
// Dipakai di setContent { }:
// AplikasiTheme { App() }
Praktikum
Buat Composable AplikasiTheme dengan parameter darkTheme (default isSystemInDarkTheme()) dan content (@Composable () -> Unit). Bungkus content dengan MaterialTheme, pilih colorScheme sesuai darkTheme.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Composable Material bawaan (Button, Text, Card, dst) OTOMATIS mengikuti MaterialTheme yang berlaku di scope-nya, TANPA kamu perlu mengatur warna manual satu-satu — kalau butuh warna spesifik yang beda dari tema, itu pengecualian yang sengaja ditulis eksplisit, bukan kebiasaan default.