Jetpack Compose中Modifier链式调用引发点击事件异常
问题:Compose中Card意外触发其他Card的点击逻辑
我定义了一个父级Modifier作为多个Card组件的基础修饰符,通过then函数为每个Card链式添加启动对应Activity的clickable Lambda。但其中一个无需点击的Card却意外可点击,且会触发第一个Card的点击逻辑启动VehicleInfoActivity3。我尝试设置空Lambda也无效。
// 父级修饰符 val modifierCard = Modifier .height(140.dp) .width(140.dp) .padding(10.dp) .align(Alignment.CenterHorizontally) // 第一个Card Card(modifier = modifierCard.then(Modifier.clickable {context.startActivity(Intent(context, VehicleInfoActivity3::class.java))}), colors = CardDefaults.cardColors(containerColor = Color.White), elevation = CardDefaults.cardElevation(defaultElevation = 12.dp), shape = RoundedCornerShape(7.dp) ) {...} // 第二个Card Card(modifier = modifierCard.then(Modifier.clickable {context.startActivity(Intent(context, ReceivePortalActivity2::class.java))}), colors = CardDefaults.cardColors(containerColor = Color.White), elevation = CardDefaults.cardElevation(defaultElevation = 12.dp), shape = RoundedCornerShape(7.dp) ) {...} // 第三个Card(不应可点击,但实际会触发第一个Card的点击逻辑启动VehicleInfoActivity3) Card(modifier = modifierCard, colors = CardDefaults.cardColors(containerColor = Color.White), elevation = CardDefaults.cardElevation(defaultElevation = 12.dp), shape = RoundedCornerShape(7.dp) ) {...}
我尝试以下写法仍无效,依旧会启动VehicleInfoActivity3:
// 第三个Card Card(modifier = modifierCard.then(Modifier.clickable { /* 空Lambda */ }), colors = CardDefaults.cardColors(containerColor = Color.White), elevation = CardDefaults.cardElevation(defaultElevation = 12.dp), shape = RoundedCornerShape(7.dp) ) {...}
以下写法初始时无点击效果,但跳转其他Activity返回后,该Card又变得可点击,且仍启动VehicleInfoActivity3:
// 第三个Card Card(modifier = Modifier .height(140.dp) .width(140.dp) .padding(10.dp), colors = CardDefaults.cardColors(containerColor = Color.White), elevation = CardDefaults.cardElevation(defaultElevation = 12.dp), shape = RoundedCornerShape(7.dp) ) {...}
编辑:问题已解决
我已找到问题根源:Modifier链式调用本身无问题。我的应用基于XML UI,正迁移到Compose,存在两个外观一致的MainActivity(一个XML版,一个Compose版),旧Activity会跳转回XML版MainActivity,只需将其从AndroidManifest.xml中移除即可解决。
内容的提问来源于stack exchange,提问作者Po-Ting Huang
相关产品推荐
相关产品推荐

