【发布时间】:2019-03-20 16:50:03
【问题描述】:
我正在尝试显示包含 3 个以上操作的通知。不幸的是,第四个动作等没有显示(可能是因为没有足够的空间)。此外,操作项的宽度也不相同。
有谁知道我怎样才能显示超过 3 个动作?
这是我的代码:
final NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
inboxStyle.setBigContentTitle(message.getData().get(DATA_TITLE));
inboxStyle.addLine(message.getData().get(DATA_BODY));
final NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_notification)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher))
.setContentTitle(message.getData().get(DATA_TITLE))
.setContentText(message.getData().get(DATA_BODY))
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setStyle(inboxStyle)
.setContentIntent(defaultIntent)
.setPriority(Notification.PRIORITY_MAX);
addActions(notificationBuilder, message);
private void addActions(final NotificationCompat.Builder builder, final RemoteMessage message) {
if (containsAction(message, EventActionType.OpenMessage)) {
builder.addAction(R.drawable.ic_email, "open", getActionIntent(message, MyActivity.class));
}
if (containsAction(message, EventActionType.Details)) {
builder.addAction(R.drawable.ic_notification_account, "details", getActionIntent(message, MyActivity.class));
}
if (containsAction(message, EventActionType.Transfer)) {
builder.addAction(R.drawable.ic_access_time, "transfer", getActionIntent(message, MyActivity.class));
}
【问题讨论】:
-
我认为有两个以上的动作只会让它变得混乱和混乱。您最好先执行一个主要操作,然后再添加一个“更多”按钮或打开 Activity 以执行其他操作的按钮。
-
就像 Matti 所说的,通知的目的是通知,而不是执行复杂的 CRUD 操作。您的设计空间非常小,但 android 5+ iirc 有更多类型的标准通知。对于这些类型的问题,通常最好不要与系统对抗并使用标准消息。祝你好运!
-
感谢您的 cmets,但我必须使用比主要操作更多的操作,这是业务需求。有谁知道如何显示来实现这一点?
标签: android android-notifications