You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose中MyApp的content未解析、@Composable调用报错如何解决

问题原因

两个报错均来自Scaffold函数的调用语法错误:

  • Jetpack Compose中Scaffold的content参数是自带@Composable注解的尾随lambda参数,你代码中Scaffold { ... }的外层大括号已经是content参数的作用域,不需要在内层额外声明content = { ... }
  • 你内层写的content = { ... }是自定义的普通lambda变量,没有添加@Composable注解,因此在这个普通lambda内调用带@Composable注解的ContactContent()就会触发「@Composable调用只能发生在@Composable函数上下文」的错误,同时IDE也会提示content值未被使用(也就是你说的未解析)。
修复方案

直接修改MyApp函数中Scaffold的调用代码,去掉多余的content = 包裹层即可:

@Composable
fun MyApp(navigateToProfile: (Contact) -> Unit){
    Scaffold { innerPadding ->
        // 可选:把Scaffold返回的innerPadding传给内容布局,避免内容被顶部/底部Bar遮挡
        ContactContent(
            navigateToProfile = navigateToProfile,
            modifier = Modifier.padding(innerPadding)
        )
    }
}

如果你要配置Scaffold的topBar、bottomBar等其他参数,把这些参数写在Scaffold的小括号内,尾随大括号仍然只放content内容即可,示例:

@Composable
fun MyApp(navigateToProfile: (Contact) -> Unit){
    Scaffold(
        topBar = { TopAppBar(title = { Text("联系人") }) }
    ) { innerPadding ->
        ContactContent(
            navigateToProfile = navigateToProfile,
            modifier = Modifier.padding(innerPadding)
        )
    }
}
额外验证点

如果修改后仍有报错,检查以下两点:

  • 确认ContactListItem函数也添加了@Composable注解
  • 确认所有Compose依赖版本一致,避免版本不兼容导致的语法异常

内容的提问来源于stack exchange,提问作者Tomee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:18:03