2

現在、イベントの進行状況をユーザーに通知するカスタム ステータス バー通知を作成しています。カスタム通知は正常に機能していますが、進行状況バーを表示するには、独自の RemoteViews セットを contentView フィールドを介して通知に渡す必要があります。

これは問題ありませんが、このレイアウトをデフォルトのレイアウトに基づいて作成できるようにしたいと考えています。私は API 10 をターゲットにしているので、Gingerbread と ICS の両方で動作する必要があります。Gingerbread は問題ありません。レイアウトの左側にアイコンを配置するだけで、通知が他のデフォルトの通知に適合するからです。ただし、ICS では、すべての通知アイコンの左側に、アイコンを含む縞模様の四角形があります (通知をスワイプして閉じることができることを示すのに役立つ UI "ハンドル" を効果的に形成します)。

コードでデフォルトのレイアウトを取得してから編集する方法(これはremoteViewsでは難しい)、または何らかの方法でデフォルトのレイアウトビューにアクセスして(おそらく実行時に)、それをコピーして通知テキストに置き換える方法を知っている人はいますか私のプログレスバー?

4

2 に答える 2

3

人々が通知を作成してレイアウトのクローンを作成した例を見てきましたが、それを使って役立つことを行うには、レイアウトについてかなりよく知っている必要があります。興味のあるAndroidバージョンからレイアウトファイルを取得したいと思います。ここにJBがありますが、他のバージョンを見つけるのに問題はありません。

于 2012-09-19T19:48:56.587 に答える
0

カスタム レイアウトが必要な唯一の理由がプログレス バーを取得することである場合は、 NotificationCompat.Builder.setProgress()を見ることができます。. カスタム通知レイアウトで遊ぶよりも簡単です。カスタム レイアウトを使用することにした場合、それらは API v14 と API v17 の間でわずかに変更されただけであり、Honeycomb でどのようなものかはわかりませんが、大きく異なる可能性は低いです。つまり、layout-v11 フォルダーで 1 つのカスタム通知レイアウトを使用でき、デフォルトのレイアウト フォルダーで 1 つを使用できるはずであり、ほとんどの場合をキャッチできます (Honeycomb 上からのアイコン背景を除いて、私は持っていません)。その部分はまだ自分のカスタム通知で機能していません)、2 つの異なるレイアウトを維持するだけで済みます。デフォルトのレイアウトの場所については、上記の回答を参照してください。以前のバージョンの Android では status_bar_latest_event_content.xml と呼ばれていることに注意してください。

setProgress() は少なくとも Honeycomb から利用可能であり、以前のバージョンでも動作するように見えるため (ドキュメントには別段の説明はありません)、他のカスタム要件がない場合はおそらくそれを使用する必要があります。

于 2013-05-15T21:23:26.133 に答える