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

Jetpack Compose中ClickCounter组合函数的lambda参数如何实现点击计数更新

正确实现代码

你需要在Composable作用域中声明一个可记忆的可观察状态来存储点击计数,直接硬编码clicks = 0不会随点击更新,修改后的完整代码如下:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            WorkTimerTheme {
                // 声明可记忆的可观察状态,初始值为0
                var clickCount by remember { mutableStateOf(0) }
                Conversation(SampleData.conversationSample)
                ClickCounter(
                    clicks = clickCount, // 传入当前状态值
                    onClick = {
                        // 点击时更新状态,状态变化会自动触发ClickCounter重组刷新UI
                        clickCount += 1
                    }
                )
            }
        }
    }
}

你需要提前导入以下扩展,保证by委托语法可以正常使用:

import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember

实现逻辑说明

  • remember 会将状态对象保存在Compose的重组树中,不会因为组件重组被重置,保证计数的持久化
  • mutableStateOf 会创建一个可观察的状态容器,当它的值被修改时,所有依赖这个值的Composable组件会自动触发重组,拿到最新值刷新UI
  • 点击按钮时修改状态值,会自动触发ClickCounter刷新,显示最新的点击次数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:36:03