2012-09-12 107 views
18

Jelly Bean添加了对可扩展状态通知的支持。据http://developer.android.com/about/versions/jelly-bean.htmlJelly Bean中的自定义可扩展通知(4.1)

除了模板样式,可以创建一个使用任何远程查看自己 通知样式。

这个怎么办?我相信要做到这一点,你需要创建一个自定义Notification.Style。这是一个抽象类,所以我需要扩展它。我无法找到任何需要扩展部件的文档。

这个SO question给出了一个如何使用notificaiton.builder进行基本通知的很好的例子,我用它作为一个起点。添加

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

添加了基本通知的自定义视图,但它不可扩展。

回答

26

您需要创建自己的RemoteViews,然后指出您希望展开的内容继承您的自定义RemoteViews

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

请注意,bigContentView是你在找什么。 mBuilder是一个Notification.Builder对象。

13

有一个很好的教程here如何做到这一点,以及如何创建自己的布局。

enter image description here

基本上你需要创建您的布局的远程视窗,然后在通知对象设置为bigContentView。顺便说一句,确保你还添加了reguler contentView,因为在某些情况下,操作系统将使用较小的contentView。

+0

链接不存在。 –

+3

链接已更新。谢谢。 – Jimmy

+0

链接再次更新http://feras.us/blog/custom-rich-notification-view-android/ –