2012-09-12 19 views
18

Jelly Bean ha aggiunto il supporto per la notifica di stato espandibile. Secondo http://developer.android.com/about/versions/jelly-bean.html:Notifiche espandibili personalizzate in Jelly Bean (4.1)

Oltre agli stili di modelli, è possibile creare i propri stili notifica utilizzando qualsiasi vista a distanza.

Come si fa? Credo che per fare questo sia necessario creare un'abitudine Notification.Style. È una classe astratta, quindi ho bisogno di essere estesa. Non sono stato in grado di trovare alcuna documentazione su quali parti debbano essere estese.

Questo SO question fornisce un buon esempio di come utilizzare notificationiton.builder per notifiche di base, sto usando questo come punto di partenza. Aggiunta

.setContent(new RemoteViews(getPackageName(), R.layout.notification)) 

aggiunge una vista personalizzata per le notifiche di base, ma non è espandibile.

risposta

26

È necessario creare il proprio RemoteViews, quindi indicare che si desidera che il contenuto espanso erediti l'utente personalizzato RemoteViews.

RemoteViews expandedView = new RemoteViews(YOUR CONTEXT.getPackageName(), YOUR CUSTOM LAYOUT); 
Notification notification = mBuilder.build(); 
notification.bigContentView = expandedView; 

Nota che bigContentView è quello che stai cercando. mBuilder è un oggetto Notification.Builder.

13

C'è un buon tutorial here su come farlo e come creare il proprio layout.

enter image description here

In sostanza è necessario creare un remoteview con il layout e quindi impostare come bigContentView nell'oggetto di notifica. A proposito, assicurati di aggiungere anche il contenuto del regulerView perché in alcuni casi il sistema operativo utilizzerà il contenuto più piccolo.

+0

collegamento non più disponibile. –

+3

Link aggiornato. Grazie. – Jimmy

+0

collegamento aggiornato ancora una volta http://feras.us/blog/custom-rich-notification-view-android/ –

Problemi correlati