Jetpack Compose 1.1.0-beta3点击特定区域外是否存在焦点丢失问题?
问题定位
这是Jetpack Compose 1.1.0-beta3版本的已知回归Bug,和你的代码写法没有关系。
该版本迭代触摸事件分发逻辑时引入了缺陷:未设置点击消费逻辑的上层容器,其空白区域的触摸事件会被错误分发到最近的子可点击组件上,就会出现你遇到的点击空白区域触发按钮点击的异常现象。该问题未波及1.0.x稳定分支,所以你在1.0.5版本无法复现。
解决方案
你可以根据自己的需求选择对应处理方式:
- 升级Compose版本到1.1.0-beta4及以上,该Bug已经在后续版本被官方修复,优先推荐升级到1.1.0正式版或更高的稳定版本
- 如果暂时需要保留1.1.0-beta3版本使用,可以给根Column添加空点击修饰符,主动消费空白区域的触摸事件,修改示例如下:
Column( modifier = Modifier .fillMaxSize() .border(4.dp, Color.Red) // 新增以下代码,消费空白区域点击,关闭涟漪效果避免视觉干扰 .clickable( indication = null, interactionSource = remember { MutableInteractionSource() } ) {} ) { // 原有子组件逻辑保持不变 }
内容的提问来源于stack exchange,提问作者chjaeggi
相关产品推荐
相关产品推荐

