android - @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 = LocalContext.current
TopAppBar(title = {},
actions = {
IconButton(onClick = {
showMessage(context, message = "test")
}){}
})
}
fun showMessage(context: Context, message:String){
Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
}
推荐阅读
- docker - 云构建超时:尝试了各种方法
- sql - PL/SQL procedure not compiling
- asp.net-mvc - 有没有办法使用 Highcharts .NET Wrapper 在散点图中绘制超过 1000 个点?
- java - 我应该怎么做才能使JButton上的图标更清晰?
- dataframe - 在 AWS Glue 上使用 mergeDynamicFrame 的问题
- swift - 枚举中的类型转换在 Swift 中不起作用
- python - 颜色突出显示 python wordcloud.WordCloud data-viz 中的单个键,同时使用 color_func
- android - 基本的 Android 启动器启动画面
- java - 使用while循环和嵌套for循环定制菱形(java)
- azure - 有没有办法让我将应用服务计划卸载到 Log Analytics?