在 Jetpack Compose 中,如何在单击 DropdownMenu
(以及
DropdownMenuItem
)时禁用 波纹效果(或调整它)
我尝试将
Modifier.clickable
与 indication = null
一起使用,但没有成功:
DropdownMenu(
expanded = expanded,
onDismissRequest = { expanded = false },
modifier = Modifier
.clickable(
interactionSource = remember { MutableInteractionSource() },
indication = null,
onClick = { }
)
)
你有什么解决办法吗?
找了好久都没有找到解决办法。我最近想出了一个可行的方法,不确定这是否是最佳实践,但至少它帮助我解决了问题。
不仅仅是
DropdownMenuItem
的情况,还有所有具有 Composables
参数的 interactionSource
。
我创建了一个自定义
MutableInteractionSource
类:
class NoRippleInteractionSource : MutableInteractionSource {
override val interactions: Flow<Interaction> = emptyFlow()
override suspend fun emit(interaction: Interaction) {}
override fun tryEmit(interaction: Interaction) = true
}
然后传入
interactionSource
参数:
interactionSource = NoRippleInteractionSource()