You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose中DropdownMenu点击外部无法收起且菜单项无响应如何解决

问题修复方案

你遇到的两个异常的共同根源是 Scaffold 内容布局没有应用内置边距,导致主内容层覆盖了底部 BottomAppBar 及弹出的 DropdownMenu 的触摸区域,触摸事件被上层内容消费无法传递到菜单组件。而返回键属于系统按键事件,不受触摸分发层级影响因此可以正常触发回调。

修复步骤

  1. 调整SampleScreen中Scaffold的内容逻辑,将Scaffold传入的innerPadding应用到内容根布局,避免主内容覆盖底部导航区域:
@Composable
fun SampleScreen() {
    Scaffold(bottomBar = {MyBottomBar()}) { innerPadding ->
        Text(
            "hello world",
            // 应用Scaffold内置边距,避开顶部状态栏、底部导航栏区域
            modifier = Modifier.padding(innerPadding)
        )
    }
}
  1. 若修复后仍存在异常,请检查你的Compose Material依赖版本:
  • 确保androidx.compose.material:material版本不低于1.2.0,早期版本存在底部弹出DropdownMenu触摸事件拦截的已知bug,升级依赖即可解决。

修复后点击菜单外部、点击菜单项都可以正常触发onDismissRequest回调收起菜单。

内容的提问来源于stack exchange,提问作者Herman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:06:04