Jetpack Compose中Clickable Modifier点击无响应问题求助
问题分析与解决
你的代码存在两个关键问题,其中一个是导致点击事件完全没触发的核心原因:
1. Toast未执行显示操作
你调用了Toast.makeText()但没有链式调用.show(),所以即使点击触发,Toast也不会弹出。修正代码如下:
Toast.makeText(context, order.movie.id.toString(), Toast.LENGTH_SHORT).show()
2. 点击事件被子组件拦截(核心原因)
你给MovieListItem添加了外部的clickable,但如果MovieListItem内部包含默认消费点击事件的组件(比如Button、IconButton、TextField),或者内部自己设置了clickable Modifier,点击事件会被内部组件优先消费,外部的clickable就不会触发——这也是你连日志都没输出的原因。
解决办法:
- 检查
MovieListItem内部实现:移除内部不需要的点击事件拦截逻辑,或者将navigateToDetail和Toast逻辑移到MovieListItem的内部点击回调中。 - 快速验证:临时把
MovieListItem替换成简单的Text组件测试,比如:
如果这样点击能正常触发,就能确定问题出在Text( text = order.movie.name, modifier = Modifier .clickable { navigateToDetail(order.movie.id) Toast.makeText(context, order.movie.id.toString(), Toast.LENGTH_SHORT).show() } )MovieListItem内部。
内容的提问来源于stack exchange,提问作者Tss
相关产品推荐
相关产品推荐

