在 Jetpack Compose 中禁用 DropdownMenu 和 DropdownMenuItem 的涟漪效果

问题描述 投票:0回答:1

在 Jetpack Compose 中,如何在单击 DropdownMenu(以及

DropdownMenuItem
)时禁用
波纹效果
(或调整它)

我尝试将

Modifier.clickable
indication = null
一起使用,但没有成功:

DropdownMenu(
    expanded = expanded,
    onDismissRequest = { expanded = false },
    modifier = Modifier
        .clickable(
            interactionSource = remember { MutableInteractionSource() },
            indication = null,
            onClick = { }
        )
    )

你有什么解决办法吗?

android android-jetpack-compose
1个回答
0
投票

找了好久都没有找到解决办法。我最近想出了一个可行的方法,不确定这是否是最佳实践,但至少它帮助我解决了问题。

不仅仅是

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()
© www.soinside.com 2019 - 2024. All rights reserved.