【发布时间】:2021-09-15 16:35:59
【问题描述】:
在以下网址的 Android 开发者文档中:https://developer.android.com/jetpack/compose/mental-model#recomposition
有一个可组合的函数,如下所示:
@Composable
fun ClickCounter(clicks: Int, onClick: () -> Unit) {
Button(onClick = onClick) {
Text("I've been clicked $clicks times")
}
}
在文中说,这会产生一个元素,该元素会在每次单击时更新其被单击的次数。但是,看它,它似乎需要一个 lambda 函数来做到这一点。
当我尝试将它放入 SetContent 函数时,我得到以下信息:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
WorkTimerTheme {
Conversation(SampleData.conversationSample)
ClickCounter(clicks = 0) {
//Insert My Function Here
}
}
}
}
}
评论//Insert My Function Here已被我添加。我认为我必须在其中放置一个更新可组合的点击值的 Lambda,但我不知道该放什么。有谁知道可以接受的写作方式吗?
【问题讨论】:
-
这是一个关于撰写中状态的非常基本的问题,我建议您查看documentation
-
感谢您的信息!就我个人而言,我发现谷歌文档非常不守规矩,因为有人迟到了。对具体问题的回答往往会给我更多的信息,即使它们很简单,我认为它们可以帮助像我这样的新人,因此值得回答!
-
这些文档是专门为初学者制作的!甚至还有一个包含基本原理的视频,可能对您来说更方便。
-
这可能是我在公平方面的心理障碍!但是在我看来,更多关于如何做同样事情的信息只会对学习有好处,你可以认为它是一个“有效的例子”。我现在正在看视频,它实际上非常好,我稍后会更新我的答案以考虑到这一点!
标签: android kotlin lambda android-jetpack-compose android-jetpack