2013-05-09 13 views
23

La mia applicazione Android deve essere in grado di inviare brevi avvisi a un ampio gruppo di persone. Il posto ovvio per farlo è nel centro di notifica. La notifica completa appare nel ticker senza problemi, ma nel centro di notifica un utente può vedere solo le prime parole di coppia e poi un punto di vista. Le notifiche non sono per niente lunghe, solo 10-15 parole al massimo. Come posso trasformare il testo in una nuova riga?Notifica Android - Visualizza messaggio completo

Il mio codice per costruire le notifiche è qui

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

risposta

42

Per mostrare grande pezzo di testo, utilizzare la BigTextStyle. Ecco un esempio di codice come indicato in BigTextStyle. Questa notifica sarà una riga di testo e si espanderà a più linee se necessario.

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

Per libreria di supporto 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

Big Visualizzazioni non sono supportati prima di 4.1, mi piacerebbe qualcosa che è più supportato – centree

+7

'setStyle (nuova NotificationCompat.BigTextStyle(). BigText (aVeryLongString))' – likejiujitsu

+0

@centree Utilizzare NotificationCompat per supportare le funzionalità di notifica più recenti sui dispositivi meno recenti. http://developer.android.com/reference/android/support/v4/app/NotificationCompat.html – pmont

4

Per Android 4.1 e dispositivi successivi, grande vista è la soluzione più adatta per mostrare grandi quantità di testo. Per i dispositivi precedenti alla 4.1, è possibile utilizzare il layout di notifica personalizzato per mostrare più dati come indicato in here. Ma si dovrebbe tenere a mente due cose:

  1. Dal official documentation

    Attenzione: Quando si utilizza un layout di notifiche personalizzate, prestare particolare attenzione per garantire che il layout personalizzato lavora con diversi orientamenti dei dispositivi e risoluzioni. Mentre questo consiglio si applica a tutti i layout View, è particolarmente importante per le notifiche perché lo spazio nel cassetto delle notifiche è molto limitato. Non rendere il layout personalizzato troppo complesso e assicurati di testarlo in varie configurazioni.

  2. layout personalizzato di notifica hanno alcune limitazioni. I testi troppo lunghi non vengono mostrati completamente, ma 10-15 parole probabilmente si adattano al layout personalizzato. This answer ha più informazioni sulla limitazione di layout personalizzati di notifica