在代码中创建自定义的展开视图
问题描述:
我想自定义通知区域,向右侧添加图标并添加几个按钮。 我已阅读教程在这里:http://developer.android.com/guide/topics/ui/notifiers/notifications.html在代码中创建自定义的展开视图
问题是,我需要将此代码包含在库中,我想要分发以改善通知的SDK。 (请参阅http://hub.buzzbox.com/)
是否可以在代码中编写所有UI,而无需使用xml来描述远程视图?这是因为资源不能包含在一个SDK中,所以我需要问我的SDK的用户添加一个xml到他们的资源中,并按名称引用所有资源......这是我想避免的。 我已经用Java代码完全编写了SDK用户界面的其他部分,但我在删除视图时也遇到了相同的问题。
一个远程视窗通常是创建这样的:
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout);
我可以创建一个远程视窗从我的布局,我与Java代码中创建? 任何其他解决方案?
答
我以为你可以用你自己的Parcel做到这一点,但是看着代码,Parcel只是简单地存储包的名称和布局(资源)ID,就像主构造函数一样。
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(mPackage);
dest.writeInt(mLayoutId);
int count;
if (mActions != null) {
count = mActions.size();
} else {
count = 0;
}
dest.writeInt(count);
for (int i=0; i<count; i++) {
Action a = mActions.get(i);
a.writeToParcel(dest, 0);
}
}
我看不到这样做的一种方式,认为它可能是不可能的。