Android通知 - 显示完整消息

时间:2013-05-09 20:33:13

标签: android google-cloud-messaging

我的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 个答案:

答案 0 :(得分:44)

要显示大块文本,请使用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();

答案 1 :(得分:4)

对于Android 4.1及更高版本的设备,大视图是显示大量文本的最佳解决方案。对于4.1之前的设备,您可以使用自定义通知布局来显示更多数据,如提到的here。但你应该记住两件事:

  1. 来自official documentation
      

    警告:使用自定义通知布局时,请特别注意确保自定义布局使用不同的设备方向和分辨率。虽然此建议适用于所有View布局,但对于通知尤为重要,因为通知抽屉中的空间非常有限。不要让自定义布局过于复杂,并确保以各种配置进行测试。

  2. 自定义通知布局有一些限制。太长的文本没有完整显示,但10-15个单词可能适合自定义布局。 This answer了解有关自定义通知布局限制的更多信息