如何导航到另一个页面

问题描述 投票:0回答:1

//ViewEntry.kt

@Composable
fun createCard(diaryEntries: List<DiaryEntry>, navController: NavController) {
    LazyColumn(
        modifier = Modifier.fillMaxSize()
    ) {
        items(diaryEntries) { entry ->
            OutlinedCard(
                colors = CardDefaults.cardColors(
                    containerColor = MaterialTheme.colorScheme.surface,
                ),
                border = BorderStroke(1.dp, Color.Black),
                modifier = Modifier
                    .fillMaxWidth()
                    .height(100.dp)
                    .padding(horizontal = 16.dp, vertical = 8.dp)
                    .clickable {
                        navController.navigate("ViewDiaryEntry/${entry.id}")
                    }
            ) {
                Row(
                    modifier = Modifier.fillMaxSize(),
                    horizontalArrangement = Arrangement.Center,
                    verticalAlignment = Alignment.CenterVertically
                ) {
                    Text(
                        text = formatDate(entry.date),
                        fontSize = 25.sp,
                        fontWeight = FontWeight.Bold,
                    )
                }
            }
        }
    }
}

//查看日记详情.kt

@Composable
fun ViewDiaryEntry(entry: DiaryEntry, navController: NavController){
    val context = LocalContext.current
    val sharedPreferences = context.getSharedPreferences("DiaryEntries", Context.MODE_PRIVATE)

    Column {
        AppBarForDiaryView(
            title = "Diary Entry",
            onBackPressed = {
                navController.popBackStack()
            }
        )
        ViewTheDetails(entry = entry)
    }
}

Clickable 不起作用,我的意思是当我单击卡片时,它没有给我提供日记详细信息页面,屏幕变黑并且应用程序停止运行。

我该如何纠正这个问题?

android kotlin android-jetpack-compose android-jetpack android-jetpack-navigation
1个回答
0
投票

您能否提供您在 logcat 上遇到的错误?您是否使用在可点击操作上调用的导航图中的参数定义了路线?

© www.soinside.com 2019 - 2024. All rights reserved.