【发布时间】:2021-12-26 03:26:53
【问题描述】:
我正在使用新的 Material 3 NavigationBar 和 NavigationBarItem 组件,我希望 NavigationBar 更薄,因为默认的太大了。我想要一个类似于 Gmail 或 Drive 的那个(参见最后的图片进行比较)。使图标变小不起作用,也不会更改所有可用的填充(Icon、NavigationBar 和 NavigationBarItem)。
这是可组合代码,如果我更改 NavigationBar 高度(使用修饰符),则会发生这种情况:
我主要想删除标签和底部之间的空间,以及顶部和图标之间的空间。
@Composable
fun MyAppBottomBar(navController: NavController, tabs: Array<MenuBottom>) {
val navBackStackEntry by navController.currentBackStackEntryAsState()
val currentRoute = navBackStackEntry?.destination?.route ?: MenuBottom.INICIO.route
val rutas = remember { MenuBottom.values().map { it.route } }
if (currentRoute in rutas) {
NavigationBar(containerColor = elevation01) {
tabs.forEachIndexed { index, item ->
NavigationBarItem(
selected = currentRoute == item.route,
onClick = {
if (item.route != currentRoute) {
navController.navigate(item.route) {
popUpTo(navController.graph.startDestinationId) {
saveState = true
}
launchSingleTop = true
restoreState = true
}
}
},
label = { Text(stringResource(id = item.title)) },
icon = {
if (item.route == currentRoute) {
Icon(item.selectedIcon, contentDescription = null, tint = Color.Black)
} else {
Icon(item.unselectedIcon, contentDescription = null)
}
},
colors = NavigationBarItemDefaults.colors(
selectedIconColor = Color.Black,
unselectedIconColor = Color.Black,
indicatorColor = Greenyellow,
selectedTextColor = Color.Black,
unselectedTextColor = Color.Black
)
)
}
}
}
}
【问题讨论】:
-
在文本中添加 Modifier.padding
-
@2jan222 我添加了 modifier = Modifier.padding(0.dp) 到:Text、NavigationBar、NavigationBarItem 和 Icon,看起来完全一样
标签: android kotlin android-jetpack-compose material-components-android