Study
Jetpack Compose

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.

Editor Latihan

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.