4

setContentを使用してカスタムレイアウトで通知を作成していますが、正常に機能します。しかし、addAction()を使用して通知にアクションを追加すると、カスタムレイアウトが無視され、Androidのデフォルトの通知レイアウトが表示されます。

(2本の指のジェスチャを使用して)通知を縮小すると、カスタムレイアウトが表示されるため、「拡張」フォームは設定できない別のレイアウトを使用しているようです。

スクリーンショット(アクションを使用し、2本の指を上にスワイプして縮小した後)

アクションで拡張

縮めた後

ご覧のとおり、アクションが表示されると、空(=デフォルトのレイアウト)で表示されます。

コード:

RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.notification_status);
Builder builder = new Notification.Builder(context);
builder.setSmallIcon(icon)
    .setTicker(tickerText)
    .setWhen(when)
    .setContent(remoteView)
    .setOngoing(true)
    .setContentIntent(contentIntent)
    .setPriority(Notification.PRIORITY_HIGH)
    .addAction(R.drawable.ic_remove, "Action 1", cancelPendingIntent)
    .addAction(R.drawable.ic_stat_notify_gray_official, "Action 2", cancelPendingIntent)
    .setContentIntent(contentIntent);
Notification statusNotification = builder.build();
return statusNotification;

運が悪かったので、アクション付き通知のレイアウトを制御する場所を見つけようとしました。何か助けはありますか?

4

1 に答える 1

1

まったく同じ問題がありました!呼び出す代わりに

builder.setContent(remoteView)

これは通常のコンテンツを置き換えます。次のようにする必要があります。

Notification statusNotification = builder.build();
statusNotification.bigContentView = remoteViews;

これにより、レイアウトが bigContentView に設定され、展開後に表示されます!

注: これを行うと、アクション ボタンが表示されなくなります。Android (on JB) では、カスタム リッチ通知にアクションを追加するにはどうすればよいですか? を参照してください。これを回避する方法について

于 2012-11-12T08:42:04.197 に答える