4

我正在使用 setContent 创建具有自定义布局的通知,它工作正常。但是当我使用 addAction() 向通知添加操作时,我的自定义布局被忽略了,它显示了 android 的默认通知布局。

当我缩小通知(使用两个手指手势)时,我的自定义布局会显示,因此“扩展”表单似乎使用了我无法设置的不同布局。

截图(有动作,然后用两根手指向上滑动缩小它)

用动作扩展

缩回去之后

如您所见,显示操作时它显示为空(=默认布局)。

编码:

RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.notification_status);
Builder builder = new Notification.Builder(context);
builder.setSmallIcon(icon)
    .setTicker(tickerText)
    .setWhen(when)
    .setContent(remoteView)
    .setOngoing(true)
    .setContentIntent(contentIntent)
    .setPriority(Notification.PRIORITY_HIGH)
    .addAction(R.drawable.ic_remove, "Action 1", cancelPendingIntent)
    .addAction(R.drawable.ic_stat_notify_gray_official, "Action 2", cancelPendingIntent)
    .setContentIntent(contentIntent);
Notification statusNotification = builder.build();
return statusNotification;

我试图找到某个地方来控制通知操作布局,但没有运气。有什么帮助吗?

4

1 回答 1

1

有完全相同的问题!而不是打电话

builder.setContent(remoteView)

它取代了正常的内容,你应该这样做:

Notification statusNotification = builder.build();
statusNotification.bigContentView = remoteViews;

这会将您的布局设置为 bigContentView,扩展后变得可见!

注意:这样做会阻止您的操作按钮出现。请参阅在 Android(在 JB 上)中,如何向自定义富通知添加操作?如何解决这个问题

于 2012-11-12T08:42:04.197 回答