如何在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
相关产品推荐
相关产品推荐

