Как изменить цвет фона SmallTopAppBar, CenterAlignedTopAppBar, MediumTopAppBar и LargeTopAppBar

Как можно использовать цветовой ресурс для изменения цвета фона верхней панели приложения MD3 в Jetpack Compose?

Понятно, а colorsсвойство доступно, но не ясно, что использовать для вышеперечисленного.

Цвет.kt

      val MyColor = Color(0,5,5,255)

MainActivity.kt

      MediumTopAppBar(title = {Text(text = "")})

2 ответа

В colorsпараметр должен использоваться так.

Обычно есть DefaultКомпаньон для этих вещей, который предоставляет удобную функцию изменения цветов. Например, компаньон по умолчанию для цветов верхней панели просто TopAppBarDefaults.

Поскольку вы имеете в виду средние бары, мы будем использовать следующее

      TopAppBarDefaults.mediumTopAppBarColors(
containerColor = Color(...) //Add your own color here, just to clarify.
)

Эти функции обычно обеспечивают containerColorи contentColorпараметр по умолчанию.

Решение ваших проблем... Супер-легко, едва доставляет неудобства.

Если вы используетеmaterial3и изменение цвета фона не работает, есть проблема вandroidx.compose.material3:material3, и вам необходимо обновить его доandroidx.compose.material3:material3:1.2.0-alpha06или более новые версии, чтобы исправить фоновую проблему вmediumTopAppBarилиlargeTopAppBar.