1.导入库
implementation("androidx.navigation:navigation-common:2.8.9")
implementation("androidx.navigation:navigation-compose:2.8.9")
implementation("androidx.compose.material3:material3:1.3.2")
implementation("androidx.compose.material3.adaptive:adaptive:1.1.0")
implementation("androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0")
implementation("androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0")
implementation("androidx.compose.material3.adaptive:adaptive-navigation:1.1.0")
implementation("androidx.compose.material3:material3-adaptive-navigation-suite:1.3.2")
implementation("androidx.compose.material:material:1.8.0")
implementation("androidx.compose.material:material-icons-extended:1.7.8")
implementation("androidx.compose.material:material-icons-core:1.7.8")
implementation("androidx.compose.material3:material3-window-size-class:1.3.2")
2.示例代码
@Composable
fun NavigationTabExample(modifier: Modifier = Modifier) {
val navController = rememberNavController()
val startDestination = Destination_Nav.SONGS
var selectedDestination by rememberSaveable { mutableIntStateOf(startDestination.ordinal) }
Scaffold(modifier = modifier) { contentPadding ->
PrimaryTabRow(selectedTabIndex = selectedDestination, modifier = Modifier.padding(contentPadding)) {
Destination_Nav.entries.forEachIndexed { index, destination ->
Tab(
selected = selectedDestination == index,
onClick = {
navController.navigate(route = destination.route)
selectedDestination = index
},
text = {
Text(
text = destination.label,
maxLines = 2,
overflow = TextOverflow.Ellipsis
)
}
)
}
}
AppNavHost(navController, startDestination)
}
}
缺少的部分代码,请参考《Android Compose 控件十五(NavigationRail)-CSDN博客》