Как удалить индикатор овальной формы из элемента панели навигации на панели навигации (составление Jetpack)?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как удалить индикатор овальной формы из элемента панели навигации на панели навигации (составление Jetpack)?

Сообщение Anonymous »

На NaviagtionBar, который я использую, на самом деле имеется эффект градиента, меняющийся от прозрачного к черному цвету с альфа-значениями черного цвета между ними. Цвет моего контейнера прозрачный, но в активном навигационном элементе за значком овальной формы есть индикатор (как на картинке). Я хочу удалить это или сделать прозрачным, но это не работает.

Код: Выделить всё

@Composable
fun BottomBar(navController: NavHostController) {
val screens = listOf(
BottomNavItems.Home,
BottomNavItems.Search,
BottomNavItems.Library
)
val navStackEntry by navController.currentBackStackEntryAsState()
val currentDestination = navStackEntry?.destination
val gradientColors = listOf(
Color.Black.copy(alpha = 0f),
Color.Black.copy(alpha = 0.7f),
Color.Black.copy(alpha = 0.9f),
Color.Black
)
val colors = NavigationBarItemDefaults.colors(
selectedIconColor =Color.White,
unselectedIconColor = Color.Gray,
indicatorColor = Color.Transparent
)
NavigationBar(
modifier = Modifier
.height(65.dp)
.background(
brush = Brush.verticalGradient(
colors = gradientColors,
)
),
containerColor = Color.Transparent,
windowInsets = WindowInsets(left = 30.dp, right = 30.dp, bottom = 15.dp)
) {
screens.forEach { screen ->
AddItem(
screen = screen,
currentDestination = currentDestination,
navController = navController
)
}
}
}

@Composable
fun RowScope.AddItem(
screen: BottomNavItems,
currentDestination: NavDestination?,
navController: NavHostController
) {
NavigationBarItem(
selected = currentDestination?.hierarchy?.any {
it.route == screen.route
} == true,
onClick = {
if (currentDestination?.hierarchy?.any {
it.route == screen.route
} == false) {
navController.navigate(screen.route) {
popUpTo(navController.graph.findStartDestination().id)
launchSingleTop = true
}
}
},
alwaysShowLabel = true,
label = {

},
icon = {
Column(
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Icon(
painter = painterResource(id = screen.icon),
contentDescription = screen.name,
modifier = Modifier.size(30.dp)
)
Text(text = screen.name, style = MaterialTheme.typography.labelSmall)
}
},
colors = NavigationBarItemDefaults
.colors(
selectedIconColor = Color.White,
unselectedIconColor = Color.Gray,
indicatorColor = MaterialTheme.colorScheme.surfaceColorAtElevation(LocalAbsoluteTonalElevation.current).copy(alpha = 0f)
)
)
}

Вот изображение, о котором я говорю
Изображение
Я пробовал и проверял, меняя

Код: Выделить всё

indicatorColor = MaterialTheme.colorScheme.surfaceColorAtElevation(LocalAbsoluteTonalElevation.current).copy(alpha = 0f)
на различные другие значения, а также изменив его на Color.Transparent. Но всегда остается темным.

Подробнее здесь: https://stackoverflow.com/questions/766 ... ionbar-jet
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»