前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

Compose:現時点のThemeを取得する

内容

色を指定する際に現時点で採用されているColorSchemeの値(例えばsurface)を使いたい。どうすればいいか。

対応

MaterialTheme.colorSchemeを使う。surfaceにアクセスしたいならMaterialTheme.colorScheme.surfaceでアクセスできる

AlertDialog(
    containerColor = MaterialTheme.colorScheme.surface
)

MaterialThemeにはcolorSchemeの他に MaterialTheme.typographyMaterialTheme.shapesもある。 どれもcurrentを使って呼び分けてくれるのがポイント。

雑感

今回はAlertDialogの背景色がデフォルトだとelevationに応じて少し変化するので それを防ぎつつ直接色指定するんじゃなくて surfaceを使いたかった。 MaterialTheme オブジェクトは前に見たことがあったが使いたいときには忘れていたのでメモ。