安卓 Jetpack 组合中的底部导航栏
原文:https://www . geesforgeks . org/bottom-navigation-bar-in-Android-jet pack-compose/
我们都在这么多应用中见过 BottomNavigationBar ,比如 Instagram、Quora。在本文中,我们将学习如何在 Jetpack Compose 中添加底部导航。下面是它的外观示例。
为什么我们需要一个 底部导航栏?
- 它允许用户轻松切换到不同的活动/片段。
- 它让用户了解应用程序中可用的不同屏幕。
- 用户能够检查他们现在在哪个屏幕上。
下面是底部导航栏的解剖图:
先决条件:
逐步实施
步骤 1:创建一个新项目(或在现有的合成项目中使用它)
在安卓工作室加那利版本中创建新项目。参考本文:如何用 Jetpack Compose 在 Android Studio Canary 版本中创建新项目?
项目结构
步骤 2:添加依赖关系
打开build . grade le(app),添加如下依赖项。
实现“androidx . navigation:navigation-compose:2 . 4 . 0-alpha 07”
步骤 3:创建屏幕
打开屏幕。kt 并创建三个屏幕,主页,搜索,个人资料。
主屏幕:
我的锅
@Composable
fun HomeScreen() {
// Column Composable,
Column(
modifier = Modifier
.fillMaxSize()
.background(Color.White),
// Parameters set to place the items in center
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
// Icon Composable
Icon(
imageVector = Icons.Default.Home,
contentDescription = "home",
tint = Color(0xFF0F9D58)
)
// Text to Display the current Screen
Text(text = "Home", color = Color.Black)
}
}
搜索屏幕:
我的锅
@Composable
fun SearchScreen() {
// Column Composable,
Column(
modifier = Modifier
.fillMaxSize()
.background(Color.White),
// parameters set to place the items in center
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
// Icon Composable
Icon(
imageVector = Icons.Default.Search,
contentDescription = "search",
tint = Color(0xFF0F9D58)
)
// Text to Display the current Screen
Text(text = "Search", color = Color.Black)
}
}
轮廓绿色:
我的锅
@Composable
fun ProfileScreen() {
// Column Composable,
Column(
modifier = Modifier
.fillMaxSize()
.background(Color.White),
// parameters set to place the items in center
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
// Icon Composable
Icon(
imageVector = Icons.Default.Person,
contentDescription = "Profile",
tint = Color(0xFF0F9D58)
)
// Text to Display the current Screen
Text(text = "Profile", color = Color.Black)
}
}
第 4 步:创建底部导航项目
让我们创建一个数据类来保存与底部导航项目相关的数据,如标签、图标、路线。打开 models/ BottomNavItem.kt 并添加以下代码。
我的锅
import androidx.compose.ui.graphics.vector.ImageVector
data class BottomNavItem(
val label: String,
val icon: ImageVector,
val route:String,
)