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

Jetpack Compose添加TopAppBar遇两类错误求助

解决Jetpack Compose中TopAppBar的两类错误

错误根源

你的AppBar函数里,TopAppBar的调用存在两处问题:

  • 多余的空lambda参数不符合函数签名
  • 可能混淆了Material和Material3版本的TopAppBar参数结构

修正代码

若使用Material库(androidx.compose.material.TopAppBar)

移除TopAppBar末尾多余的空lambda即可:

@Composable
fun MainScreen() {
    Scaffold(topBar = { AppBar() } ) {
        Surface(modifier = Modifier
            .fillMaxSize()
            .padding(it)) {
            Column() {
                ProfileCard()
            }
        }
    }
}

@Composable
fun AppBar(){
    TopAppBar(
        title = { Text(text = "Hi") }
    )
}

若使用Material3库(androidx.compose.material3.TopAppBar)

确保调用正确的重载,Material3的TopAppBar无需额外的末尾lambda:

@Composable
fun MainScreen() {
    Scaffold(topBar = { AppBar() } ) {
        Surface(modifier = Modifier
            .fillMaxSize()
            .padding(it)) {
            Column() {
                ProfileCard()
            }
        }
    }
}

@Composable
fun AppBar(){
    androidx.compose.material3.TopAppBar(
        title = { Text(text = "Hi") }
    )
}

错误解释

  1. @Composable invocations can only happen from the context of a @Composable function:你添加的末尾空lambda不是@Composable上下文,编译器误判该位置可能存在非法的Composable调用,移除多余lambda即可解决。
  2. None of the following functions can be called with the arguments supplied:TopAppBar没有对应你传入的参数组合的重载(title参数后额外加空lambda),参数不匹配导致此错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:50:43