Jetpack Compose任务列表展开按钮失效问题求助
问题解决:Jetpack Compose任务列表展开按钮无效的修复
你的代码中**DescriptionIcon**组件的点击事件未正确触发状态更新,导致点击按钮仅切换图标但无法展开详情。问题出在IconButton的onClick参数设置上:
错误代码
IconButton(onClick = { onClick }) { ... }
这里只是引用了onClick函数对象,但没有执行它,点击按钮时不会触发expanded状态的切换逻辑。
修复后的代码
@Composable private fun DescriptionIcon( expanded: Boolean, onClick: () -> Unit, modifier: Modifier = Modifier ){ IconButton(onClick = onClick) { // 直接传递函数引用,或者写成{ onClick() } Icon( imageVector = if (expanded) Icons.Filled.ExpandLess else Icons.Filled.ExpandMore, tint = MaterialTheme.colors.secondary, contentDescription = stringResource(id = R.string.toggle_description) // 补充可访问性描述 ) } }
修复说明
- 将
onClick = { onClick }改为onClick = onClick(直接传递函数引用),或者onClick = { onClick() }(在lambda中显式调用函数),这样点击按钮时会正确触发expanded状态的切换,进而显示/隐藏TaskDescription。 - 补充
contentDescription是为了符合Android可访问性规范,建议在strings.xml中添加对应的字符串资源。
内容的提问来源于stack exchange,提问作者mohamed ismail
相关产品推荐
相关产品推荐

