Как создать темы для `NavigationBar()` и `NavigationBarItem()` в Jetpack Compose?
Мне ужасно трудно изменить цвет (цвета) выбранных / невыбранных значков и активного индикатора. В документах нет примеров или надлежащих Kdoc, и я не могу найти какие-либо примеры в Интернете (пожалуйста, укажите мне какие-либо известные вам). Значки просто не меняют свой цвет и остаются черными.
Мой
NavigationBar
выглядит так:
NavigationBar(
containerColor = NavBarColor,
contentColor = ContentColor, // <-- Can't tell what this is for.
modifier = Modifier
.align(Alignment.BottomCenter)
) {
// ...
destinations.forEachIndexed { index, item ->
NavigationBarItem(
selected = currentDestination?.hierarchy?.any { it.route == item.route } == true,
onClick = {
// ...
},
icon = {
when (index) {
0 -> {
Icon(
imageVector = Icons.Rounded.Add,
contentDescription = stringResource(id = item.description)
)
}
1 -> {
Icon(
imageVector = Icons.Rounded.Home,
contentDescription = stringResource(id = item.description)
)
}
2 -> {
Icon(
imageVector = Icons.Rounded.Call,
contentDescription = stringResource(id = item.description)
)
}
}
},
// Why on Earth does this not want to work:
colors = NavigationBarItemDefaults.colors(
selectedIconColor = NavBarColor, // <-- This doesn't work.
unselectedIconColor = ContentColor, // <-- This doesn't work.
indicatorColor = ContentColor // <-- This works.
)
)
}
}
1 ответ
Использовать
import androidx.compose.material3.Icon
для вашего значка.
Здесь вы смешиваете код материала и материала3:
Icon
импортируется из материала и использует материал, с другой стороны
NavigationBarItem
является представлением материала3 и предоставляет материал3
LocalContentColor
.