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

Android Jetpack Compose调用自定义@Composable函数报注解错误如何解决

错误触发原因

你的报错并非来自AngleBtSetting的注解缺失,核心问题是调用Scaffold时的语法错误,导致后续lambda失去了Composable上下文:

  • 正常运行的代码中,Scaffold{ ... }使用Kotlin尾随lambda语法,直接将Scaffold要求的@Composable类型的content参数传入,lambda内部拥有Composable上下文,Text调用符合要求。
  • 报错代码中你写了Scaffold(){ ... },额外添加的空括号表示你已经完成Scaffold的参数传递(content参数使用默认的空实现),后续紧跟的{ ... }是普通的非Composable lambda,在其中调用属于Composable函数的Text,就会触发「调用Composable函数的方法必须添加@Composable注解」的错误。
解决方法

选择以下任意一种方案修改即可:

  1. 去掉Scaffold后多余的空括号,恢复尾随lambda传参写法:
@Composable
fun AngleBtSetting(){
    Scaffold { innerPadding ->
       Text(
           modifier = Modifier.padding(innerPadding),
           text = "测试"
       )
    }
}

注:如果使用Material3版本的Scaffold,content lambda会默认传入innerPadding参数,建议给根组件添加对应padding避免内容被顶部/底部栏遮挡。

  1. 保留括号写法时,将content逻辑放到参数括号内部:
@Composable
fun AngleBtSetting(){
    Scaffold(
        content = { innerPadding ->
            Text(
                modifier = Modifier.padding(innerPadding),
                text = "测试"
            )
        }
    )
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:06:01