我正在将多活动应用程序迁移到单活动应用程序以进行撰写。
我创建了一个可组合的主页,其中包含一个顶部应用程序栏,其标题如下所示:
@Composable
fun Home() {
val navController = rememberNavController()
var actionBarTitle by rememberSaveable { mutableStateOf("Home") }
var actionBarSubtitle by rememberSaveable { mutableStateOf("") }
Scaffold(topBar = {
Header(title = actionBarTitle, subTitle = actionBarSubtitle,
onBackPress = { navController.popBackStack() },
showInfo = true, onActionClick = {
navController.navigate(Screen.Info.route)
}, modifier = Modifier.fillMaxWidth())
}) {
AppNavigation(navController = navController, onNavigate = { title, subtitle ->
actionBarTitle = title
actionBarSubtitle = subtitle
})
}
Run Code Online (Sandbox Code Playgroud)
每当我对任何屏幕使用 navController.navigate 时,都会触发 onNavigate,如下所示:
onNavigate("Top up", "Please topm up with minimum of …Run Code Online (Sandbox Code Playgroud) 如何根据 NavController 中的实际位置显示TopAppBar使用中的导航图标(后退箭头或菜单)?Scaffold我正在使用Navigating with Compose 1.0.0-alpha02。下面是一个示例代码,描述了它应该如何工作
@Composable
fun App()
{
val navController = rememberNavController()
Scaffold(
topBar = {
TopAppBar(
title = { Text(text = "App title") },
navigationIcon = {
/*
Check if navController back stack has more
than one element. If so show BackButton.
Clicking on that button will move back
*/
val canMoveBack = true
if (canMoveBack)
{
IconButton(onClick = {
// Move back
navController.popBackStack()
}) {
Icon(asset = Icons.Outlined.ArrowBack)
}
} …Run Code Online (Sandbox Code Playgroud) android kotlin android-jetpack-navigation android-jetpack-compose