如何解决@composable调用只能在@composable函数的上下文中发生
当我单击工具栏上的操作时,我试图显示一条吐司消息,但出现此错误
@composable调用只能在以下情况下发生: @composable函数
代码:
@Composable
fun Toolbar() {
TopAppBar(title = { Text(text = "Jetpack Compose") },navigationIcon = {
IconButton(onClick = {}) {
Icon(Icons.Filled.Menu)
}
},actions = {
IconButton(onClick = {
showMessage(message = "test")
}) {
Icon(vectorResource(id = R.drawable.ic_baseline_save_24))
}
})
}
@Preview
@Composable
fun ToolbarPreview(){
Toolbar()
}
@Composable
fun showMessage(message:String){
Toast.makeText(ContextAmbient.current,message,Toast.LENGTH_SHORT).show()
}
解决方法
onClick
参数不接受可组合函数。
删除@Composable
中的showMessage
注释。
使用类似的东西:
@Composable
fun Toolbar() {
val context = ContextAmbient.current
TopAppBar(title = {},actions = {
IconButton(onClick = {
showMessage(context,message = "test")
}){}
})
}
fun showMessage(context: Context,message:String){
Toast.makeText(context,message,Toast.LENGTH_SHORT).show()
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。