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

如何在Heads-up Notification中隐藏操作按钮,仅展开时显示

实现Heads-up通知隐藏操作按钮,仅展开时显示

嘿,这个需求其实可以通过Android通知API里的一个小技巧轻松实现——利用setShowActionsInCompactView()方法来控制操作按钮在紧凑视图(也就是Heads-up悬浮通知)中的显示状态。

具体修改你的代码就行,看下面:

NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(getNotificationIcon())
    .setContentTitle("Sample App")
    .setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND)
    .setPriority(Notification.PRIORITY_MAX)
    .setLights(Color.BLUE, 3000, 3000)
    .setAutoCancel(true)
    .addAction(action1)
    .addAction(action2)
    .setContentText(body)
    // 核心代码:不指定任何要在紧凑视图显示的操作按钮,Heads-up时就会隐藏它们
    .setShowActionsInCompactView();

为什么这样生效?

Android的通知有两种视图状态:

  • 紧凑视图:Heads-up悬浮通知、通知栏折叠状态下显示的简化视图,默认会展示最多2个操作按钮。
  • 扩展视图:下拉通知栏展开后显示的完整视图,会展示所有添加的操作按钮。

setShowActionsInCompactView(int... indices)方法就是用来指定哪些操作按钮要出现在紧凑视图里。当我们调用这个方法但不传任何索引参数时,紧凑视图就不会显示任何操作按钮,只有展开后的扩展视图才会显示你添加的action1和action2。

额外小技巧

如果之后你想让某个操作按钮在Heads-up时也显示,只需要传入对应的索引(从0开始计数)就行,比如只显示第一个操作按钮:

.setShowActionsInCompactView(0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:06:30