Templateでui.theme配下にカスタムテーマが自動生成されます
自動生成のコードを修正
新規作成にも記載してますがTheme.ktは非推奨メソッドを使用しているので
以下の修正と不要なimportの削除が必要です
if (!view.isInEditMode) {
/* getting the current window by tapping into the Activity */
val currentWindow = (view.context as? Activity)?.window ?: throw Exception("Not in an activity - unable to get Window reference")
SideEffect {
/* the default code did the same cast here - might as well use our new variable! */
currentWindow.statusBarColor = colorScheme.primary.toArgb()
/* accessing the insets controller to change appearance of the status bar, with 100% less deprecation warnings */
WindowCompat.getInsetsController(currentWindow, view).isAppearanceLightStatusBars = darkTheme
}
}
アプリ全体のフォント/色の設定
Type.kt アプリ全体のフォント設定
Color.kt Color定義
StatusBarの背景色
上記コードにあるようにcurrentWindow.statusBarColorで変更
topbarの色は一見それっぽいcurrentWindow.navigationBarColorで変更できない
currentWindow.navigationBarColorは画面の一番下の横線の領域(機種によっては無いかも)
TopAppBarの背景色はTopAppBarのcolors(TopAppbarColors)で以下のように指定
colors = TopAppBarDefaults.centerAlignedTopAppBarColors(containerColor = Color.Blue),
※ StatusBarの色変更補足
Theme以外で変更は以下
// ステータスバーの色はThermeで設定されているActivityのwindowのsetStatusBarColorで設定されている
// 上記を設定している場合は以下で色は変わらない
// com.google.accompanist:accompanist-systemuicontroller
val systemUiController = rememberSystemUiController()
SideEffect {
systemUiController.setStatusBarColor(SkyBlue)
}
Android Studio Dolphin 2021.3.1 Patch 1 built on September 30, 2022