26

我的 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());
4

2 回答 2

51

要显示大量文本,请使用 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();
于 2013-05-09T20:47:55.700 回答
4

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

  1. 来自官方文档

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

  2. 自定义通知布局有一些限制。太长的文本没有完全显示,但 10-15 个字可能适合自定义布局。 这个答案有更多关于自定义通知布局限制的信息
于 2013-11-17T21:50:08.373 回答