Jelly Bean(4.1)中的自定义可扩展通知

18

Jelly Bean支持可扩展的状态通知。根据http://developer.android.com/about/versions/jelly-bean.html:

除了模板样式之外,您可以使用任何远程视图创建自己的通知样式。

如何做到这一点?我相信您需要创建自定义Notification.Style。这是一个抽象类,因此需要扩展它。我无法找到有关哪些部分需要扩展的任何文档。

这个SO问题给出了一个基本通知使用notificaiton.builder的好例子,我将其用作起点。添加:

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

添加一个自定义视图用于基本通知,但它不可扩展。

2个回答

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

这里有一篇很好的教程(链接),介绍了如何创建自己的布局以及如何实现它。

输入图像描述

基本上,您需要使用自己的布局创建一个remoteView,并将其设置为通知对象中的bigContentView。另外,请确保您还添加了常规contentView,因为操作系统在某些情况下会使用更小的contentView。


链接再次更新:http://feras.us/blog/custom-rich-notification-view-android/ - Kirill Kulakov
链接又挂了。 - Langusten Gustel
1
@LangustenGustel 再次更新,附上 GitHub 页面的直接链接。 - Jimmy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接