安卓通知- 显示完整消息

27

我的Android应用程序需要能够向大批人员发送短消息提醒。最明显的地方是通知中心。完整的通知可以在滚动文本中正常显示,但在通知中心中,用户只能看到前几个单词,然后是省略号。这些通知并不长,最多只有10-15个单词。我该如何使文本换行到新的一行?

此处是我构建通知的代码

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.splash)
    .setContentTitle("Student Engauge")
    .setContentText(extras.getString("message"))
    .setAutoCancel(true)
    .setTicker(extras.getString("message"));
    final int notificationId = 1;
    NotificationManager nm = (NotificationManager) getApplicationContext()
          .getSystemService(Context.NOTIFICATION_SERVICE);
    nm.notify(notificationId, mBuilder.build());
2个回答

52

要显示大块文本,请使用BigTextStyle。以下是BigTextStyle的示例代码。此通知将有一行文本,如果需要会展开到更多行。

Notification noti = new Notification.Builder()
 .setContentTitle("New mail from " + sender.toString())
 .setContentText(subject)
 .setSmallIcon(R.drawable.new_mail)
 .setLargeIcon(aBitmap)
 .setStyle(new Notification.BigTextStyle()
     .bigText(aVeryLongString))
 .build();

对于 Android 支持库

Notification noti = new Notification.Builder()
 .setContentTitle("New mail from " + sender.toString())
 .setContentText(subject)
 .setSmallIcon(R.drawable.new_mail)
 .setLargeIcon(aBitmap)
 .setStyle(new NotificationCompat.BigTextStyle()
     .bigText(aVeryLongString))
 .build();

大视图在4.1之前不受支持,我希望有更受支持的东西。 - centree
8
setStyle(new NotificationCompat.BigTextStyle().bigText(aVeryLongString)) - likejudo
@centree 使用NotificationCompat来支持旧设备上的新通知功能。http://developer.android.com/reference/android/support/v4/app/NotificationCompat.html - pmont
1
@pmont,兼容库仍不支持Android 4.0的bigText。 - Frank
折叠其他通知 - Rahul Matte

4
对于Android 4.1及以上设备,大视图是展示大量文本的最合适解决方案。对于早期版本的设备,您可以使用自定义通知布局来显示更多数据,如这里所述。但您应该记住两件事:
1. 来自官方文档 警告:当您使用自定义通知布局时,请特别注意确保您的自定义布局适用于不同的设备方向和分辨率。虽然此建议适用于所有View布局,但对于通知而言尤为重要,因为通知抽屉中的空间非常有限。不要使您的自定义布局过于复杂,并确保在各种配置中进行测试。
2. 自定义通知布局有一些限制。太长的文本无法完全显示,但10-15个单词可能适合自定义布局。这篇答案有关于自定义通知布局限制的更多信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接