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

如何为Jetpack Compose可复用CustomButton实现点击事件回调

你需要给CustomButton新增一个函数类型的入参,用来接收外部传入的点击回调逻辑,具体修改步骤如下:

步骤1:修改CustomButton组件定义

给组件添加onClick: () -> Unit参数,将其直接传给内部原生Button的onClick属性:

@Composable
fun CustomButton(
    text : String,
    // 新增点击回调参数,() -> Unit 代表无参数无返回值的函数类型
    onClick: () -> Unit
){
    Button(
        onClick = onClick,
        modifier = Modifier.fillMaxWidth().height(60.dp)
    ) {
        Text(text = text)
    }
}

如果要兼容旧调用不需要传点击回调的场景,可以给参数设置默认空实现:onClick: () -> Unit = {}

步骤2:调用组件时传入点击逻辑

在使用CustomButton的位置,通过onClick参数传入对应按钮要执行的业务逻辑即可:

Column(
    modifier = Modifier
        .fillMaxWidth()
        .align(Alignment.BottomCenter)
        .padding(bottom = 32.dp)
) {
    CustomButton(
        text = "Get Started",
        onClick = {
            // 这里写"开始使用"按钮要执行的逻辑,比如页面跳转、数据上报等
            // 示例:navController.navigate("start_page")
        }
    )
    Spacer(modifier = Modifier.size(16.dp))
    CustomButton(
        text = "Log In",
        onClick = {
            // 这里写"登录"按钮要执行的逻辑
            // 示例:navController.navigate("login_page")
        }
    )
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:24:07