contentColor () solo puede tomar el background y el color de contenido, pero no hay opción para el color de tinte.
Para BottomNavigation , debe proporcionar BottomNavigationItem para construirlo, mientras construye BottomNavigationItem , puede usar Icon con tint como recurso como se muestra a continuación
BottomNavigation() { BottomNavigationItem(icon = { Icon(asset = vectorResource(id = R.drawable.homeBottomNav), tint = Color.Blue) //this is tint }, selected = true, onClick = {}) }Puede usar unselectedContentColor y selectedContentColor .
BottomNavigationItem( unselectedContentColor = Color.Black, selectedContentColor = Color.Red, icon = { Icon( painter = painterResource(id = screen.iconResourceId), contentDescription = null) }, selected = currentRoute == screen.route, onClick = { } )Con el 1.0.0 (probado con 1.0.0-beta06 ) en BottomNavigationItem puedes definir los atributos:
selectedContentColorunselectedContentColorAlgo como:
BottomNavigation(backgroundColor = Color.White) { BottomNavigationItem( selectedContentColor = Color.Red, unselectedContentColor = Color.Gray, icon = { Icon(Icons.Filled.Add, "contentDescription") }, selected = true, onClick = {}) BottomNavigationItem( selectedContentColor = Color.Red, unselectedContentColor = Color.Gray, icon = { Icon(Icons.Filled.Search, "contentDescription") }, selected = false, onClick = {}) } Además, dado que el color de contenido selectedContentColor predeterminado se basa en LocalContentColor.current , también puede usar algo como:
BottomNavigation(backgroundColor = Color.White) { CompositionLocalProvider(LocalContentColor provides Color.Red) { BottomNavigationItem( icon = { Icon(Icons.Filled.Add, "contentDescription") }, selected = true, onClick = {}) BottomNavigationItem( icon = { Icon(Icons.Filled.Search, "contentDescription") }, selected = false, onClick = {}) } }Si desea cambiar el color de tinte de la imagen, puede usar el siguiente código
Image(painter = painterResource(R.drawable.ic_arrow_details), contentDescription = "", colorFilter = ColorFilter.tint(Color.Black))Puede usar las propiedades de colorFilter en Image
selectedContentColor cambia el color de Text e Icon , pero no de Image() Composable. Entonces, si desea mantener el color del icono multicolor cuando se selecciona, debe usar Image() . También desea convertirlo en escala de grises cuando no está seleccionado, puede usar colorFilter.
Además, si no desea cambiar el color de Text/Icon , puede usar Color.Unspecified .
En caso de que no desee cambiar el color del contenido y desee tener un color individual para un icono específico, hay una propiedad de tinte. Me gusta:
Icon( Icons.Filled.PushPin, "", tint = MaterialTheme.colors.secondary ) Pero como dijeron otros, puede usar unselectedContentColor y selectedContentColor en su NavigationItem .
Si desea eliminar completamente el color del tinte y desea utilizar los colores de los iconos, intente con: tint = Color.Unspecified
Por ejemplo:
Icon( modifier = Modifier.size(34.dp), imageVector = ImageVector.vectorResource(id = R.drawable.ic_your_icon), contentDescription = "Some icon", tint = Color.Unspecified )