2013-05-09 78 views
23

我的Android應用程序必須能夠發送短的警報了一大羣人。明顯的地方是在通知中心。完整的通知顯示在代碼中沒有問題,但在通知中心,用戶只能看到前幾個單詞,然後看到一個省略號。通知時間不長,最多隻有10-15個字。我怎樣才能讓文字換到新的一行?Android的通知 - 顯示完整的郵件

我的代碼來構建通知是在這裏

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()); 

回答

42

要顯示大塊文本,使用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(); 
+0

次大不前4.1支持自定義通知佈局的限制更多的信息,我想的東西,更支持 – centree 2013-05-09 21:15:58

+7

'的setStyle(新NotificationCompat.BigTextStyle()。bigText(aVeryLongString))' – likejiujitsu 2014-03-11 16:40:55

+0

@centree使用NotificationCompat支持較舊設備上較新的通知功能。 http://developer.android.com/reference/android/support/v4/app/NotificationCompat.html – pmont 2014-04-05 07:25:16

4

對於Android 4.1及更高版本的設備,大的觀點是最合適的解決方案,顯示大量的文本。對於4.1之前的設備,您可以使用自定義通知佈局來顯示更多數據,如提到here。但是你應該記住兩兩件事:

  1. official documentation

    注意:當您使用自定義通知的佈局,要特別小心,以確保您的自定義佈局可與不同的設備取向和分辨率。雖然此建議適用於所有View佈局,但對於通知而言尤其重要,因爲通知抽屜中的空間非常有限。不要讓你的自定義佈局太複雜,並且一定要以各種配置進行測試。

  2. 自定義通知的佈局有一定的侷限性。太長的文本沒有完整顯示,但10-15個單詞可能適合自定義佈局。 This answer有大約